gpt4 book ai didi

tsql - T-SQL : Best way to handle NULL values in string concatenation

转载 作者:行者123 更新时间:2023-12-04 02:16:59 27 4
gpt4 key购买 nike

如果在 SELECT 语句中我选择了一个连接字符串,该字符串使用我从中选择的表中的值,那么处理这些值的 NULL 以便我仍然拥有字符串的最佳方法是什么?例如,如果我为用户选择城市、州和国家,并且我想要将它们全部连接起来的第三个字段:

SELECT City, State, Country,
City + ', ' + State + ', ' + Country AS 'Location'
FROM Users

但是,如果三个字段中的任何一个为 NULL(只要用户不是来自美国,就会发生这种情况),'Location' 为 NULL。

我目前的解决方案是这样的:
SELECT City, State, Country,
City + ', ' + COALESCE(State + ', ', '') + Country AS 'Location'
FROM Users

但我不确定这是否只是一个黑客行为,是否有更好的方法来做到这一点。想法?

最佳答案

要在每两个字段之间使用逗号可预见地看起来正确,您可以使用此表单

;with users(City, State, Country) as (
select 'a', null, 'c' union all
select 'a', 'b', 'c' union all
select null, null, 'c')

-- ignore above this line
SELECT City, State, Country,
STUFF(
ISNULL(', ' + City, '')+
ISNULL(', ' + State, '')+
ISNULL(', ' + Country, ''), 1, 2, '') AS 'Location'
FROM Users

输出
City State Country Location
---- ----- ------- --------
a NULL c a, c
a b c a, b, c
NULL NULL c c

关于tsql - T-SQL : Best way to handle NULL values in string concatenation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4960950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com