select 1 where somevalue = '' or somevalue is null from sometable
我完全理解为什么背后的原因我必须有两个独立的条件。困扰我的是为什么经过这么多年之后仍然没有标准的快捷符号。
我可以看到为什么各种dbms实现不提供快捷方式,因为它不是必需的,这样做会使你的sql更不便携,但考虑到所有dbms的这种快捷方式的用处,我无法理解为什么没有添加快捷方式的权力进入sql规范。
我的问题:实际上是否存在合理的理由,如果是的话是什么?
答案 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功能。