Sql server 将列连接在一起,列可以为空

Sql server 将列连接在一起,列可以为空,sql-server,tsql,Sql Server,Tsql,我需要将这些值组合在一起,并将其复制到不同的列中 COLUMN 1 | COLUMN 2 | COLUMN 3 | COLUMN 4 Hallo out there Hallo out there My NULL name is My name is I'm a rabbit I'm a rabbit 如何合并列1、2、3并将其复制到以空格分隔的列4 列可以为空。只需使用+符号

我需要将这些值组合在一起,并将其复制到不同的列中

COLUMN 1 | COLUMN 2 |  COLUMN 3 | COLUMN 4 
Hallo      out         there      Hallo out there
My         NULL        name is    My name is
I'm        a           rabbit     I'm a rabbit
如何合并列1、2、3并将其复制到以空格分隔的列4

列可以为空。

只需使用+符号即可

  select ISNULL([COLUMN 1],'')+' ' +
         isnull([COLUMN 2],'')+' ' +
         isnull([COLUMN 3],'') 
  from your_table

使用
ISNULL

UPDATE table
SET Column4 = 
ISNULL(Column1+' ','') + 
ISNULL(Column2+' ','') + 
ISNULL(Column3,'') 
或者可以考虑使用计算列。

SQL Server 2012

update yourtable SET COlumn4= ltrim(rtrim(isnull([COLUMN 1],'') +' '+isnull([COLUMN 2],'') +' '+  isnull([COLUMN 3],'')))
UPDATE table
SET Column4 = CONCAT(Column1 + ' ', Column2 + ' ', Column3)

根据数据类型,上述代码可能无法工作,因此您可以在之前将其转换为varchar。

现在它将添加额外的空格(例如,如果第1列和第2列都为空)。请立即检查。我已删除额外的空格spaces@AaronBertrand-是的,不错的整数。当它改变的时候将会是一种耻辱!
UPDATE table
SET Column4 = CONCAT(Column1 + ' ', Column2 + ' ', Column3)
select isnull(convert(varchar(255),[COLUMN1]),'')+' '+isnull(convert(varchar(255),[COLUMN2]),'')+' '+isnull(convert(varchar(255),[COLUMN3]),'')
from table

UPDATE table
SET COLUMN4 = isnull(convert(varchar(255),[COLUMN1]),'')+' '+isnull(convert(varchar(255),[COLUMN2]),'')+' '+isnull(convert(varchar(255),[COLUMN3]),'')