我有想要连接的地址列,即使只有一个字段不为空。
例如
street,city,state,zip
null,null,AL,36609目前,我的sql语句是这样的:
select street + ',' + city + ',' + state + ',' + 'zip as address因此,上面的示例记录给我的地址为空。有没有一种简单的方法来显示不为nulll的内容?
因此,上面的示例记录将返回:
AL, 36609发布于 2011-09-28 06:27:37
尝试此查询:
SELECT SUBSTRING(
ISNULL(','+street,'')
+ISNULL(','+city,'')
+ISNULL(','+state,'')
+ISNULL(','+zip,'')
,2, 500) AS address
FROM table发布于 2011-09-28 06:07:31
试试这个:
select
isnull(street + ',', '') +
isnull(city + ',', '') +
isnull(state + ',', '') +
isnull(zip + ',', '')这依赖于标准的NULL行为,即对NULL的任何操作都会返回NULL。因此,如果street为NULL,则street + ',‘将返回NULL。然后,ISNULL运算符将选择空字符串。
有关NULL连接的更多信息,请参见SET CONCAT_NULL_YIELDS_NULL。(在将来的版本中将始终启用此选项。)
发布于 2011-09-28 06:02:55
您可以使用COALESCE
SELECT
COALESCE (street, '') +
COALESCE (city, '') +
state +
zip AS address另一种方法是使用ISNULL
SELECT
ISNULL(street, '') +
ISNULL(city, '') +
state +
zip AS addresshttps://stackoverflow.com/questions/7576182
复制相似问题