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

sql话语中的case when

2012-12-14 
sql语句中的case when请大家帮忙看看这句话中有没有问题case a.value when a.id386 then (a.value where

sql语句中的case when
请大家帮忙看看这句话中有没有问题
case a.value when a.id=386 then (a.value where a.id=363-a.value where a.id=362)
             when a.id=15000 then (a.value where a.id=407+a.value where id=789 - a.id where a.id =408-a.value where a.id=790)
             else a.value end 
[最优解释]
非常乱来的语法,必定报错》。。。你直接说你想要什么结果吧
[其他解释]
case when A=6 then 'Y' else 'N' end  这是常规用法。
楼主的 实在耐人寻味。。。这么多where 
[其他解释]

引用:
引用:case when A=6 then 'Y' else 'N' end  这是常规用法。
楼主的 实在耐人寻味。。。这么多where
请问一下where后面的这些判断条件该怎么表达


你的用法有点让人摸不着头脑  给出你的具体问题吧
[其他解释]
a.value=case when a.id=386 then 你的计算差的方法 when a.id=15000 then四个value值的加减结果 else a.value end

[其他解释]
你问题算法表结构什么的都没说得明白  我不知道怎么表示
[其他解释]
case when a.id=386 then (select a.value from a where a.id=363)-(select a.value from a where a.id=362)
     when a.id=15000 then (select a.value from a where a.id=407)+(select a.value from a where a.id=789) -(select a.value from a where a.id=408)-(select a.value from a where a.id=790)
   else a.value end  from a
[其他解释]
引用:
引用:case when a.id=386 then (select a.value from a where a.id=363)-(select a.value from a where a.id=362)
     when a.id=15000 then (select a.value from a where a.id=407……

不要告诉我你语句最前面没加select,不然应该没问题的。
[其他解释]
13楼的写法没问题,确实如果报错,那就是select 没写,试试:
select case when a.id=386 then ((select a.value from a where a.id=363)-(select a.value from a where a.id=362))
      when a.id=15000 then ((select a.value from a where a.id=407)+(select a.value from a where a.id=789) -(select a.value from a where a.id=408)-(select a.value from a where a.id=790))
    else a.value end  from a
[其他解释]
看看case when 的基本用法,http://wenku.baidu.com/view/78d6e7ea81c758f5f61f6701.html
[其他解释]
引用:
非常乱来的语法,必定报错》。。。你直接说你想要什么结果吧


我要的结果是 当a.id=386时,a.value=两个value值的差
            a.id=15000时,a.value的值为四个value值的加减结果
         其他id值时,a.value=a.value
[其他解释]
引用:
case when A=6 then 'Y' else 'N' end  这是常规用法。
楼主的 实在耐人寻味。。。这么多where

请问一下where后面的这些判断条件该怎么表达
[其他解释]
引用:
引用:引用:case when A=6 then 'Y' else 'N' end  这是常规用法。
楼主的 实在耐人寻味。。。这么多where
请问一下where后面的这些判断条件该怎么表达

你的用法有点让人摸不着头脑  给出你的具体问题吧


我要的结果是 当a.id=386时,a.value=两个value值的差
            a.id=15000时,a.value的值为四个value值的加减结果
         其他id值时,a.value=a.value
[其他解释]

a.value=case when a.id=386 then 你的计算差的方法 
when a.id=15000 then 四个value值的加减结果 
else a.value end 

[其他解释]
引用:
SQL code?1234a.value=case when a.id=386 then 你的计算差的方法 when a.id=15000 then 四个value值的加减结果 else a.value end

请问then后面value值的条件怎么表达,比如a.value where a.id=386,where语句该怎么表达呢
[其他解释]
引用:
你问题算法表结构什么的都没说得明白  我不知道怎么表示

a这个表中的字段有id、value等,现在想处理value字段的值
[其他解释]
引用:
case when a.id=386 then (select a.value from a where a.id=363)-(select a.value from a where a.id=362)
     when a.id=15000 then (select a.value from a where a.id=407)+(select a.value fro……

 (select a.value from a where a.id=363)-(select a.value from a where a.id=362)会报语法错误
[其他解释]
很有问题!!
[其他解释]
楼主的写法太想当然了

热点排行