我有多个具有相同值的列,当我总结它们时,它显示了不正确的结果。有没有办法在sql中编写case语句,如果A列> 0则将所有剩余列设为0(B列,C列,D列= 0)
如果 B 列 >0,则将所有剩余列设为 0(A 列、C 列、D 列= 0)
在此序列中,第一列具有更高的优先级。
我尝试写案例陈述,但没有成功。
看看这个例子是否有帮助:
SELECT a
,CASE WHEN a > 0 THEN 0 ELSE b END AS b
,CASE WHEN a > 0 OR b > 0 THEN 0 ELSE c END AS c
,CASE WHEN a > 0 OR b > 0 OR c > 0 THEN 0 ELSE d END AS d
FROM tbl;