首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle空检查字符串字段

Oracle空检查字符串字段
EN

Stack Overflow用户
提问于 2013-03-12 09:34:52
回答 3查看 10.1K关注 0票数 2

在下面的示例中,除了"NAME1“之外,为什么所有的结果都为null而导致oracle11g。

如果我显式地提到空间,它会占用空间,否则只有空的,而不是空的string.Please,帮助我澄清这一点。

在NAME2中,我指定了空空间,但它仍然给出了null。

代码语言:javascript
复制
select 
NVL(NAME,' ') AS NAME1,
NVL(NAME,'') AS NAME2,
NVL(NAME,NULL) AS NAME3,
NAME AS NAME4 
from employee

输出:

(空格),空

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-12 09:44:45

因为在Oracle中,零长度varchar被视为NULL。

在你的例子中

代码语言:javascript
复制
NVL(NAME, ' ') AS NAME1 will evaluate to either NAME or ' ' - empty string.
NVL(NAME, '') as NAME2 will evaluate to either NAME or a zero length string
票数 8
EN

Stack Overflow用户

发布于 2013-03-12 10:59:30

因为“”等于甲骨文中的空。例如,这两个查询是相同的:

代码语言:javascript
复制
update  test set name=''  where id = 15
update  test set name=null   where id = 15
票数 3
EN

Stack Overflow用户

发布于 2013-03-12 09:43:40

原因是,在Oracle中,空字符串等同于NULL

通过执行下面的查询,可以看出这是正确的。

代码语言:javascript
复制
SELECT 'x' FROM DUAL WHERE '' IS NULL

这应该返回一个行,这意味着条件'' IS NULLtrue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15357630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档