读书人

这两个case when 话语为什么有错

发布时间: 2012-09-11 10:49:03 作者: rapoo

这两个case when 语句为什么有错
1。
select
case @SamplingStepDateValue when 'A' then *
else top 1 *
end
From @tbl

2。
。。。。。(已经选好内容,需要排序)
ORDER BY
case @SamplingStepDateValue ='A'then
RemediationId
, TYear_seq DESC
, WTHRGH_Seq DESC
, CONST_Seq DESC
, RECD_Seq DESC
, CLEAN_Seq DESC
, REF_Seq DESC
case @SamplingStepDateValue ='E' then
DATESAM_DATE ASC
case @SamplingStepDateValue ='L' then
DATESAM_DATE DESC


[解决办法]
select
case @SamplingStepDateValue when 'A' then *
else top 1 *
end
From @tbl
-->不能用*,要具体一列
[解决办法]
case when then else end 相当于三目运算,只能是单个值,不能是数据集
[解决办法]
你的第二个是语法问题,你可以看看,第一个也是我前两天正在纠结的问题,然后我换个写法,用if exists来写的,这里我总算明白了,为什么,我的当时写法错了,因为我查询的结果是一个数据集
[解决办法]
一个查询中order by 比较的字段或表达式只能是固定的,不能用一个case 来order by 不固定的字段.

读书人网 >SQL Server

热点推荐