我有一个带有case语句的查询返回null(good),但是当对每种情况使用where语句时,在输出中都有记录。
select a,b,sysdate ,
CASE
WHEN a IS NULL AND SYSDATE > b THEN 'O'
WHEN a IS NULL AND SYSDATE <= b THEN 'W'
WHEN a > b THEN 'Fail'
WHEN a <= b THEN 'Pass'
else 'good'
END as result
from mytable
a | b | sysdate |结果
空| null | 19年7月10日|好
空| null | 19年7月10日|好
空| null | 19年7月10日|好
空| null | 19年7月10日|好
我执行此查询(或其他两个查询)时有输出
select a,b,sysdate from mytable
where a > b
输出(在哪里查询):
a | b | sysdate
10-APR-15 | 2015年4月6日| 19年7月10日|
06-APR-15 | 2015年4月6日| 19年7月10日|
02-APR-15 | 15年4月1日| 19年7月10日|
select a,b,sysdate from mytable
where a IS NULL AND SYSDATE > b
select a,b,sysdate from mytable
where a <= b
答案 0 :(得分:0)
当$container.offset({
'left': 100,
'top': mouse.y - ( event_state.mouse_y - event_state.container_top )
});
语句获得where
个值时,它返回null
,这将从结果集中排除记录。
详细了解SQL Server中的三种有价值的逻辑(只需在Google上搜索:)即可。)
这就是为什么您没有任何记录的原因。例如,共同映射到unknown
列(其中a
始终为a
)不会导致失败的记录。
您需要使用null
或类似的“ coalesce
-防止”功能。