sql语句中的case when

请大家帮忙看看这句话中有没有问题casea.valuewhena.id=386then(a.valuewherea.id=363-a.valuewherea.id=362... 请大家帮忙看看这句话中有没有问题
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
展开
 我来答
seesea2517
2012-11-22 · TA获得超过1480个赞
知道小有建树答主
回答量:512
采纳率:100%
帮助的人:547万
展开全部
有没有问题,运行一下就知道了,不需要问嘛。
你这个看起来语法就不对,是否是 mysql?如果是那肯定是错的。
你是否想要通过 a.value 来产生不同的查询条件?建议你直接把原始问题发出来,描述你的原始数据以及你想得到的结果,这样才好分析。
追问
我要的结果是 当a.id=386时,a.value=两个value值的差
a.id=15000时,a.value的值为四个value值的加减结果
其他id值时,a.value=a.value
当然还有wnere后面的判断条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baiynijecym
2012-11-22 · TA获得超过1841个赞
知道大有可为答主
回答量:1411
采纳率:66%
帮助的人:1149万
展开全部
正常case 有两种写法
一种是这样:case col1 when value1 then data1 when value2 then data2 else data3 end
另一种case when col1 = value1 then data1 when col1 + col2 = value2 then data2 else data3 end

你写的有些问题,你是想实现什麼?
更多追问追答
追问
我要的结果是 当a.id=386时,a.value=两个value值的差
a.id=15000时,a.value的值为四个value值的加减结果
其他id值时,a.value=a.value
当然还有wnere后面的判断条件
追答
那你可以这样写
select case a.id
when 386 then (select value from table1 where id = 363) - (select value from table1 where id = 362)
when 15000
then (select sum(value) from table1 where id in(407,789)) -

(select sum(value) from table1 where id in(408,790))
else a.value end
from table1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ffd570e1f
2012-11-22 · TA获得超过244个赞
知道小有建树答主
回答量:632
采纳率:50%
帮助的人:293万
展开全部
SyntaxSimple CASE function:
CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Searched CASE function:
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvhao0906
2012-11-22 · 超过23用户采纳过TA的回答
知道答主
回答量:73
采纳率:100%
帮助的人:55.7万
展开全部
'value' = case when a=368 then (x-y) when a=15000 then (m+n-s-k) else z end
你是这个意思吧。
追问
是的,就是x/y这些都有判断条件很难办
追答
(a.value where a.id=363-a.value where a.id=362)
改成
((select c.value from A c where c.id=363)-(select d.value from A d where d.id=362))
试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式