SQL CASE 子句中是否可以有 and 语句?如果是这样你怎么写?
即像这样的东西?:
CASE
When ((Column < 1) AND (Column2 > 0)) THEN column4 + 1
END as Column
我的代码执行但没有完成我想要的(没有负数):
CASE
WHEN (((Clean_Total_Time - ActivityTimeTotalMin) < 0) AND (ActivityTimeTotalMin > 0))
THEN (ABS(DATEDIFF(hh,Total_Time,ActivityTotalTime))-1)
END as hours
我的代码确实有效并且确实完成了它应该做的,但我不想要它,因为它允许负数:
CASE
WHEN (Clean_Total_Time - ActivityTimeTotalMin) < 0
THEN (ABS(DATEDIFF(hh,Total_Time,ActivityTotalTime))-1)
END as hours
编辑:此计算的目的如下:
它减去两列,如果结果为负,则从这两列之一中减去数字一。此外,我的 AND 部分是说,如果该列的值为零,则它不会从该列中减去 1。我不希望该列的数字低于零。
唯一没有发生的事情是,如果列等于 0,它就不会被捕获。因此,只要最初是 0,我就会得到负 1。