❶ order by case when
order by,依次按#tt×.ywq排。
case when 是你所说的功能。当#tt1.ywq是null的时候,取1否则取0
❷ union后 order by case
order by只能用于外部查询中,不能应用于子查询中。
上面的sql,union all合并了2个sql查询结果集,order by当成union all合并结果集的排序,但是结果集中无表a和字段bqdm。
select * from (select a.bqdm,sum(a.zyrs) 今日在院人数 from YZCX_YZRB_ZY0 a ,ZY_BQDMK b
where a.bqdm=b.id
group by a.bqdm
union all
select '合计',sum(a.zyrs) from YZCX_YZRB_ZY0 a,ZY_BQDMK b where a.bqdm=b.id) a
order by
(case a.bqdm
when '8001' then 1
else 10
end)
❸ SQL2000存储过程里怎么用order by 不同的条件。
建议 @orderby int 参数设为 varchar类型,即直接传入要排序的字段列表
如果为空就取addtime desc
存储过程可以改为下面的样子
declare @sql varchar(8000)
set @sql='select * from table '
if @orderby=''
set @sql=@sql+' order by price1 asc '
else
set @sql=@sql+' order by '+@orderby
exec (@sql)
❹ SQL中order by ,case when组合当when值为空时怎么仍旧安指定顺序排序
我有个办法,但是感觉有点low···就是原数据表中union all 上 select ‘yh’,0 from al和之后的那几个,然后括号扩上作为一个大表二字段分组求和一下在排序,这样能达到你要的效果,不知道有没有更好的方法
❺ 关于sql中动态 ORDER BY+CASE WHEN中排序字段类型的问题
换一个思路:
http://blog.csdn.net/zghnpdswyp/article/details/49178643
❻ sql order by 出错
试试这个如何:
select * from
(select id,yyname "名称",sum(totfy) "总费用"
from zy
where daa>='2010.02' and daa<='2010.02'
group by id,yyname
union
select id,' ',0 from mjz where daa>='2010.02' and daa<='2010.02'
and id not in (select id from zy where daa>='2010.02' and daa<='2010.02')) tmp
order by
(select case id
when '3415' then 1
when '4397' then 2
when '395X' then 3
when '3941' then 4
when '3968' then 5
when '3044' then 6
when '4506' then 7
when '0704' then 8
when '4178' then 9
when '0261' then 10
end)
❼ mssql order by后面如果要赋值排序,应该如何写
可以跟据需要便通一下
select * from info order by u_control=3 asc
改为
select * from info order by case when u_control=3 then 0 end asc
强制将u_control变为这个字段的最小值,他的结果自然就排前面去了,后面如果还有条件可以接着写 end asc,id desc,title asc等等,条件越多,速度也就越慢,呵呵
❽ sql查询语句如何按指定字段顺序排序
"order by case when 的意思是说,按case when 做条件排序,你这个不是排序的问题吧,是搜索结果的字段显示问题吧,只有你说的写法的,就是select b,d,f,e,a,c,g,h,i,j,k……,z from student
或者你要改表字段的位置咯"
❾ sql的order by可以自定义排序函数吗
可以的。order by 后面跟着的字段名,而且现在的瓶颈基本是在sql上,所以尽量不要在sql里执行计算函数之类。因为运算和执行函数会消耗资源,使得sql执行变慢。函数之类的能在程序里执行尽量在程序里执行,现在cpu的瓶颈还很远。
❿ 在sql server里如何实现order by case 影响执行效率么 select * from tb order by case when 序号!=0 then
select * from tb order by
序号,id
第一个还多一次判断
不过 这2个结果不一样 不应该比较效率的