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就可以了