首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tsql帮助连接多个字段

tsql帮助连接多个字段
EN

Stack Overflow用户
提问于 2011-09-28 05:59:57
回答 5查看 571关注 0票数 2

我有想要连接的地址列,即使只有一个字段不为空。

例如

代码语言:javascript
运行
复制
street,city,state,zip
null,null,AL,36609

目前,我的sql语句是这样的:

代码语言:javascript
运行
复制
select street + ',' + city + ',' + state + ',' + 'zip as address

因此,上面的示例记录给我的地址为空。有没有一种简单的方法来显示不为nulll的内容?

因此,上面的示例记录将返回:

代码语言:javascript
运行
复制
AL, 36609
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-28 06:27:37

尝试此查询:

代码语言:javascript
运行
复制
SELECT  SUBSTRING(
     ISNULL(','+street,'')
    +ISNULL(','+city,'')
    +ISNULL(','+state,'')
    +ISNULL(','+zip,'')
    ,2, 500) AS address
FROM    table
票数 1
EN

Stack Overflow用户

发布于 2011-09-28 06:07:31

试试这个:

代码语言:javascript
运行
复制
select
    isnull(street + ',', '') +
    isnull(city + ',', '') +
    isnull(state + ',', '') +
    isnull(zip + ',', '')

这依赖于标准的NULL行为,即对NULL的任何操作都会返回NULL。因此,如果street为NULL,则street + ',‘将返回NULL。然后,ISNULL运算符将选择空字符串。

有关NULL连接的更多信息,请参见SET CONCAT_NULL_YIELDS_NULL。(在将来的版本中将始终启用此选项。)

票数 4
EN

Stack Overflow用户

发布于 2011-09-28 06:02:55

您可以使用COALESCE

代码语言:javascript
运行
复制
SELECT
  COALESCE (street, '') +
  COALESCE (city, '') +
  state +
  zip AS address

另一种方法是使用ISNULL

代码语言:javascript
运行
复制
SELECT
  ISNULL(street, '') +
  ISNULL(city, '') +
  state +
  zip AS address
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7576182

复制
相关文章

相似问题

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