当前位置:  开发笔记 > 数据库 > 正文

为什么这个SQL语句不起作用?

如何解决《为什么这个SQL语句不起作用?》经验,为你挑选了1个好方法。

我有以下SQL语句:

SELECT DISTINCT name FROM log WHERE NOT name = '' AND name LIKE '%.EDIT%';

它在Postgres上运行正常(从日志中返回所有不同的名称,它们不是空的并且包含字符串'.EDIT').但在甲骨文这个声明不起作用.知道为什么吗?



1> Tony Andrews..:
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%';

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有