首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果文字为空,则返回null

如果文字为空,则返回null
EN

Stack Overflow用户
提问于 2015-04-13 20:33:33
回答 2查看 45关注 0票数 0

如果有中间初始值,则选择具有中间初始值的首名和姓氏,但如果整个文字为空,则还需要选择null。如果文字为空,则当前代码将返回空格,这会扰乱视图中的选择。

代码语言:javascript
复制
t1.first
      || ' '
      || NVL2 (t1.middle, t1.middle || ' ', NULL)
      || t1.last
         "SUPERVISOR"

这是从select列表中提取的,除了整个文字选择为空时,一切都正常,然后返回空格而不是NULL。对于这段代码,没有空字段,应该有几个NULL。

任何帮助或建议都很感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-13 20:36:37

我想用一个案例陈述是可行的。您可能需要调整条件,因为我不确定这些值是空字符串还是空字符串。

代码语言:javascript
复制
CASE 
WHEN t1.first is null and t1.last is null and t1.middle is null 
THEN null
ELSE t1.first
          || ' '
          || NVL2 (t1.middle, t1.middle || ' ', NULL)
          || t1.last end 
             "SUPERVISOR"
票数 1
EN

Stack Overflow用户

发布于 2015-04-13 21:25:38

只需在调用TRIM()时将构建的字符串包装起来,这将删除空白并返回NULL (如果只有这些内容)。这里,通过使用NVL检测它是否为null并返回一个值来说明和证明:

代码语言:javascript
复制
with tbl as
(
  select 'first' firstname, 'M' middlename, 'Last' lastname from dual
  union
  select NULL firstname, NULL middlename, NULL lastname from dual
)  
select NVL(trim(firstname || ' ' || middlename || ' ' || lastname), 'NO NAME ENTERED') fullname from tbl;


FULLNAME       
---------------
first M Last   
NO NAME ENTERED
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29614556

复制
相关文章

相似问题

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