首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-09-11 
这两个case when 语句为什么有错1。selectcase @SamplingStepDateValue whenA then *else top 1 *endFrom

这两个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 不固定的字段.

热点排行