我有一个名为CLOCK的表,它具有列ID:
NUMBER, TIME_IN: DATE, TIME_OUT: DATE, START_LUNCH: VARCHAR2, and STOP_LUNCH: VARCHAR2.
我想选择TIME_IN和TIME_OUT不为NULL且START_LUNCH ='Y'且STOP_LUNCH为NULL的ID,并且该ID没有CLOCK_IN不为NULL且CLOCK_OUT为null的行。
我可以得到所有信息,但最后一部分要确保没有其他具有相同ID的行,其中CLOCK_IN不为NULL,而CLOCK_OUT为NULL。任何帮助表示赞赏。
SELECT ID FROM CLOCK
WHERE TIME_IN IS NOT NULL
AND TIME_OUT IS NOT NULL
AND START_LUNCH = '50'
AND START_LUNCH IS NULL
您可以使用not exists
或not in
。这是一个使用示例not in
:
SELECT ID FROM CLOCK
WHERE TIME_IN IS NOT NULL
AND TIME_OUT IS NOT NULL
AND START_LUNCH = '50'
AND START_LUNCH IS NULL
AND ID NOT IN (SELECT ID
FROM CLOCK
WHERE CLOCK_IN IS NOT NULL
AND CLOCK_OUT IS NULL)
子查询会选择所有要排除的与条件匹配的ID,并not in
负责实际排除它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句