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 展开
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 展开
4个回答
展开全部
有没有问题,运行一下就知道了,不需要问嘛。
你这个看起来语法就不对,是否是 mysql?如果是那肯定是错的。
你是否想要通过 a.value 来产生不同的查询条件?建议你直接把原始问题发出来,描述你的原始数据以及你想得到的结果,这样才好分析。
你这个看起来语法就不对,是否是 mysql?如果是那肯定是错的。
你是否想要通过 a.value 来产生不同的查询条件?建议你直接把原始问题发出来,描述你的原始数据以及你想得到的结果,这样才好分析。
追问
我要的结果是 当a.id=386时,a.value=两个value值的差
a.id=15000时,a.value的值为四个value值的加减结果
其他id值时,a.value=a.value
当然还有wnere后面的判断条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正常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
你写的有些问题,你是想实现什麼?
一种是这样: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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'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))
试试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询