1. sql查詢結果怎麼按指定列數依次排列
with tmp as
(
select row_number() over(order by FENTRYID) rn,FENTRYID
from 表
)
select t1.FENTRYID as FENTRYID1,t2.FENTRYID as FENTRYID2,t3.FENTRYID as FENTRYID3
from tmp t1
left join tmp t2 on t2.rn=t1.rn+1
left join tmp t3 on t3.rn=t1.rn+2
where t1.rn%3=1
order by t1.FENTRYID
這是轉成3列的,如果列數要變化,上面的語句要調整
2. sql server 改變 列 順序
什麼方法都被你禁止完了
估計用臨時表的方法也不行哈,不滿足你的第三點說明
那隻能用不是方法的方法了
你就直接select
*
from
tableA
然後在顯示的結果集中,用滑鼠按住colB的列名,拖到colA前面就OK了。
3. SQL Server2000中怎樣用SQL語句來調整列的順序
select
列1,列2,列3............
from
表1
[內連接、交叉連接、左連接、右連接] join 表2
...
where
條件1
[or|and] 條件2
group by
列1,列2,列3............
order by
列1,列2,列3............
4. 用SQL語句生成新列--排序列(1,2,3,4,5,6,。。)
順著你的思路說:現在是按VV1,VV2,VV3,VV4,VV5排序(適用於任意類型的欄位):
select no=
(select count(1) from aaa t where
t.vv1<o.vv1 or --一個欄位排序到此為止,但把<換成<=
t.vv1=o.vv1 and t.vv2<o.vv2 or--兩個到此為止,但把最後的<換成<=
t.vv1=o.vv1 and t.vv2=o.vv2 and t.vv3<o.vv3 or--三個、四個以此類推
t.vv1=o.vv1 and t.vv2=o.vv2 and t.vv3=o.vv3 and t.vv4<o.vv4 or
t.vv1=o.vv1 and t.vv2=o.vv2 and t.vv3=o.vv3 and t.vv4=o.vv4 and t.vv5<=o.vv5
),*
from aaa o
order by vv1,vv2,vv3,vv4,vv5
------------------------------
看出來了吧?有多少個變數排序,就寫多少層,書寫起來麻煩,但查詢起來,一個和多個速度基本是一樣的,沒有多大差別。
按照規律書寫也並不麻煩,
規律總結一下,就是,
一層層復制,稍作修改。每層長出一組
每層最後一個符號是小於號(<),其餘都是等號。
所有層的最後一個符號是小於等於(<=)。
如果按排序欄位(本例為VV1,VV2,VV3,VV4,VV5)進行了索引,查詢速度會大大加快。
5. 大哥,又遇到問題了,sql中如何改變列順序
insert into a
select id from his where (cint(f1)+cint(f2)+cint(f3)=18) or id in(select top 1 id from his) union all
select id from his where (cint(f1)+cint(f2)+cint(f3)=18) or id in(select top 1 id from his order by fseq desc)
其實,加個union all 就可以實現2次查詢結果在一個裡面, 然後直接insert就可以了