gpt4 book ai didi

SQL 服务器 : concatenate values and ignore null or blank values

转载 作者:行者123 更新时间:2023-12-02 08:16:03 24 4
gpt4 key购买 nike

我正在使用 SQL Server 2014,我有一个包含地址列表的表,其中的项目位于单独的列中。

例如:

st number Prefix  st name    suffix   Dir    unit    number    city    zip
___________________________________________________________________________
1234 W Main St NULL Unit 34 LA 90210
345 NULL George Ave NULL NULL NULL SF 94525
123 E Bloom Ct W NULL NULL DC 99342

我想连接这些地址并将它们合并到一个单元格中。

主要目标是使用该串联地址链接到另一个表。例如,如果我使用 ISNULL 连接以忽略空白值,它将给我这个

345 _ George Ave _ _ _ SF 94525. 

(我添加了 _ 以显示使用空格的位置)

它在有空值时添加一个空格。如果有空格,则无法链接到其他表。我尝试了 COALESCE 但它没有用。我不太熟悉 Coalesce,但我认为 COALESCE 只会给我第一个非空值。结果我想要的是:

1234 W Main St Unit 34 LA 90210
345 George Ave SF 94525
123 E bloom Ct W DC 99342

我如何组合这些项目而不在空值之间留空格?请帮忙。谢谢

最佳答案

基于 Prdp 的回答,一个简单的替换(或两个)可以消除双/三空格。

Declare @YourTable table ([st number] varchar(25),Prefix varchar(25),[st name] varchar(25),suffix varchar(25),Dir varchar(25),unit varchar(25),number varchar(25),city varchar(25),zip varchar(25))
Insert Into @YourTable values
('1234','W' ,'Main' ,'St' ,NULL,'Unit','34','LA','90210'),
('345' ,NULL,'George','Ave',NULL,NULL ,NULL,'SF','94525'),
('123' ,'E' ,'Bloom' ,'Ct' ,'W' ,NULL ,NULL,'DC','99342')

Select FullAddress = replace(replace(concat([st number],' ',Prefix,' ',[st name],' ',suffix,' ',Dir,' ',unit,' ',number,' ',city,' ',zip),' ',' '),' ',' ')
From @YourTable A

返回

FullAddress
1234 W Main St Unit 34 LA 90210
345 George Ave SF 94525
123 E Bloom Ct W DC 99342

关于SQL 服务器 : concatenate values and ignore null or blank values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41780920/

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