首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果数据库值为null,如何避免连接时的空间?

如果数据库值为null,如何避免连接时的空间?
EN

Stack Overflow用户
提问于 2019-09-25 07:15:10
回答 3查看 748关注 0票数 0

我正在连接三个数据库值Firstname,middlename,lastname.Here是查询-

代码语言:javascript
代码运行次数:0
运行
复制
Select ISNULL(t.FirstName,'')+' '+ISNULL(t.MiddleName,'')+' '+ ISNULL(t.LastName,'') as [UserName],Email from table1 t

我得到了一些中间名的空值。这就是为什么我获得额外的空间后,级联。

Firstname LastName --用两个空格代替一个

如果中间名为null,那么result.If中只会出现一个空格,而不是null,那么在名字、中间名和姓氏之间有一个空格。我尝试过一些方法来避免这种情况,但没有任何效果。

EN

回答 3

Stack Overflow用户

发布于 2019-09-25 07:47:19

将空间放在ISNULL函数中:

代码语言:javascript
代码运行次数:0
运行
复制
Select ISNULL(t.FirstName + ' ', '') 
    + ISNULL(t.MiddleName + ' ', '')
    + ISNULL(t.LastName,'') as [UserName]
票数 3
EN

Stack Overflow用户

发布于 2019-09-25 08:07:35

您可以使用replace()函数将双空格替换为单个空格。

代码语言:javascript
代码运行次数:0
运行
复制
Select replace(concat(coalesce(t.FirstName,''), ' '
    , coalesce(t.MiddleName,' ')
    , coalesce(t.LastName,''), '  ', ' ')) as [UserName]
    , Email 
from table1 t
票数 1
EN

Stack Overflow用户

发布于 2019-09-25 07:34:19

您可以使用case when子句

代码语言:javascript
代码运行次数:0
运行
复制
SELECT ISNULL(t.FirstName,'') + 
  CASE WHEN t.MiddleName IS NOT NULL THEN
    ' ' + t.MiddleName + ' '
  ELSE 
    ' ' 
  END +
  ISNULL(t.LastName,'') as [UserName],
  Email
FROM table1 t

示例这里

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

https://stackoverflow.com/questions/58093013

复制
相关文章

相似问题

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