将列连接在一起,列可以为null

时间:2012-09-25 11:42:39

标签: 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列并将其复制到以空格分隔的列。

列可以为null。

6 个答案:

答案 0 :(得分:4)

UPDATE dbo.table
  SET column4 = COALESCE(column1, '') 
      + COALESCE(' ' + column2, '')
      + COALESCE(' ' + column3, '');

答案 1 :(得分:3)

SQL Server 2012

UPDATE table
SET Column4 = CONCAT(Column1 + ' ', Column2 + ' ', Column3)

答案 2 :(得分:2)

只需使用+符号

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

答案 3 :(得分:1)

使用ISNULL

UPDATE table
SET Column4 = 
ISNULL(Column1+' ','') + 
ISNULL(Column2+' ','') + 
ISNULL(Column3,'') 

或者您可以考虑使用计算列。

答案 4 :(得分:0)

update yourtable SET COlumn4= ltrim(rtrim(isnull([COLUMN 1],'') +' '+isnull([COLUMN 2],'') +' '+  isnull([COLUMN 3],'')))

答案 5 :(得分:0)

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]),'')

以上代码可能不起作用,具体取决于数据类型,因此您可以在之前将其转换为varchar。