我知道它确实考虑过'' NULL,但这并没有太多告诉我为什么会这样.据我所知,SQL规范''与NULL- 不一样- 一个是有效数据,另一个是缺少相同的信息.
随意推测,但请说明是否是这种情况.如果甲骨文的任何人都能评论它,那就太棒了!
我有一个Oracle查询,其结构如下:
SELECT *
FROM table
WHERE X='true' OR
Y IN (complicated subquery)
Run Code Online (Sandbox Code Playgroud)
如果Oracle看到X确实等于'true',它仍然会尝试评估WHERE子句的Y IN(子查询)部分吗?此外,在诸如此类的语句中,子查询是否会对表中的每个条目执行多次?我会用以下的东西变得更好:
WITH subQ as (complicated subquery)
SELECT *
FROM table
WHERE X='true' OR
Y IN (SELECT id FROM subQ)
Run Code Online (Sandbox Code Playgroud)