我有以下SQL语句:
SELECT DISTINCT name FROM log WHERE NOT name = '' AND name LIKE '%.EDIT%';
它在Postgres上运行正常(从日志中返回所有不同的名称,它们不是空的并且包含字符串'.EDIT').但在甲骨文这个声明不起作用.知道为什么吗?
SELECT DISTINCT name FROM log WHERE NOT name = '' AND name LIKE '%.EDIT%';
1)Oracle将''视为NULL,这意味着比较"NOT name =''"永远不会为真或假; 改为使用"IS NOT NULL".但...
2)第二个条件"name LIKE'%.EDIT%'无论如何都不匹配空字符串,使第一个条件变得多余.
所以重写为:
SELECT DISTINCT name FROM log WHERE name LIKE '%.EDIT%';