关于网友提出的“sql server select语句结果要order by”问题疑问,本网通过在网上对“sql server select语句结果要order by”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:sql server select语句结果要order by
描述:表MyTable,列为:[id],[data]
里面有几十行数据,我想选出全部,要排序,但是id=40的不需要排,
就是说我想把除了id=40以外的全部行按data值desc排序,
再把id=40行放到结果的最后面,然后输出
怎么做?
解决方案1:SELECT *,CASE WHEN ID = 1 THEN 1 ELSE 0 END T1 FROM t ORDER BY T1 ASC
ID = 1换成你指定那一行的条件。
解决方案2:1: 一楼方法可行.
2: select * from(
select top 10000000 * from MyTable
where id!=40
order by data desc
) T
union all
select * from MyTable
where id=40
这样也可以的。
注:top 10000000 这个地方你要给一个足够大的整数,也就是比你整个行数要大的整数。
解决方案3:哈哈,学习了
解决方案4:同意一楼的语句
SELECT id,data,CASE WHEN ID = 40 THEN 1 ELSE 0 END T1 FROM MyTable ORDER BY T1 ASC,data DESC
解决方案5:其实一楼的方法就比较好!
SELECT *,CASE WHEN ID = 40 THEN 1 ELSE 0 END T1 FROM MyTable ORDER BY T1 ASC,data DESC
解决方案6:直接用SQL语句去处理单表,应该是不行的我自己试了用UNION 也不行,但有如下两种方法可行
1 用临时表变量,把排好序不包括指定行的数据,插入到临时表变量中,然后再查询出不需要排序的数据并插入临时表变量中
虽然麻烦了一点,但是实现肯定OK了
2 用程序处理,原理与 上面一样分两次查询并存入一个List中
以上介绍了“sql server select语句结果要order by”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1184972.html