我有多个列具有相同的值,当我汇总它们时,它显示了不正确的结果.有没有办法用SQL编写一条CASE语句,如果列A&>0,则所有剩余的列都为0(列B、列C、列D=0)?
如果B&>列为0,则将其余所有列设置为0(A列、C列、D列=0).
第一列在该序列中获得较高的优先级.
我试着写案件陈述,但没有奏效.
我有多个列具有相同的值,当我汇总它们时,它显示了不正确的结果.有没有办法用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;