0
 select 1 where somevalue = '' or somevalue is null from sometable

我完全理解为什么我必须有两个不同的条件背后的原因。令我困惑的是为什么这么多年后仍然没有一个标准的快捷表示法。

我可以看到为什么各种 dbms 实现不提供快捷方式,因为它不是必需的,这样做会使您的 sql 的可移植性大大降低,但是考虑到这种快捷方式在所有 dbms 中的有用性,我无法理解为什么权力尚未在 sql 规范中添加执行此操作的快捷方式。

我的问题:实际上是否有正当理由,如果有,那是什么?

4

3 回答 3

3

我习惯在 Oracle 中工作,其中空字符串NULL,但这不起作用吗?

SELECT 1 FROM sometable WHERE COALESCE( somevalue, '' ) = ''
于 2012-05-05T04:00:21.413 回答
2

你可以

select * from table where isnull(columnname,'')=''

或者如果您担心 ' ' 值,那么您将使用 ltrim 和/或 rtrim。

于 2012-05-05T04:14:29.450 回答
0

我没有看到这个问题。唯一的奇怪是由于Oracle没有遵循使NULL与''相同的标准。

这很容易做到: coalesce(columnname,'')=''

在 MS SQL Server 上,您还可以使用它: isnull(columnname,'')=''

但请注意,它是 MS 独有的功能。

于 2012-05-05T05:48:42.283 回答