为什么STILL没有sql快捷方式在where条件中包含/不包含空值?

时间:2012-05-05 03:36:19

标签: sql sql-standards

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

我完全理解为什么背后的原因我必须有两个独立的条件。困扰我的是为什么经过这么多年之后仍然没有标准的快捷符号。

我可以看到为什么各种dbms实现不提供快捷方式,因为它不是必需的,这样做会使你的sql更不便携,但考虑到所有dbms的这种快捷方式的用处,我无法理解为什么没有添加快捷方式的权力进入sql规范。

我的问题:实际上是否存在合理的理由,如果是的话是什么?

3 个答案:

答案 0 :(得分:3)

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

SELECT 1 FROM sometable WHERE COALESCE( somevalue, '' ) = ''

答案 1 :(得分:2)

你可以

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

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

答案 2 :(得分:0)

我没有看到这个问题。唯一的陌生感是Oracle不遵循标准使NULL与''。

相同

这很简单:coalesce(columnname,'')=''

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

但要注意它只是一个MS功能。