SQL Server 2012,将多个字段合并为一个

时间:2018-03-20 13:42:45

标签: sql sql-server sql-server-2012

我试过

'field1'+'field2'+'field3' as combination

并尝试:

 ((((field_1||'_')||field_2_yes)||'_')||field_3_yes) AS combination

尝试:

field1 || field2 as combination

我也尝试过Concat,合并,似乎无法让它发挥作用。 此外,如果有帮助,我通过excel查询SQL服务器。

预期输出是名为combination的列,其中field1field2field3数据作为组合列中的行。我不是要创建文字字符串field1field2field3,而是将这些字段中的数据组合成一个字符串并显示在新列中。

问题在于数据类型为何这些字段没有合并。

3 个答案:

答案 0 :(得分:2)

请你试试没有副驾驶?:

select combination = (field1 + field2)
from table

如果你需要在值之间加一个空格,如果field1和field2是varchar,那么你可以这样做:

select combination = (field1 + ' ' + field2)
from table

如果field1和field2不是varchar,那么您可以像下面这样进行投射并在主查询中使用:

cast(field1 as varchar(50))

答案 1 :(得分:2)

那么您是否只想将2个字段显示为一个字段?

Field1 ='你好' field2 =' world'

select field1 + field2 as concatfield from table
select concat(field1, field2) as concatfield from table

这将为您提供如下输出:

helloworld

如果您想添加空间,请尝试以下方法:

  select field1 + ' ' + field2 as concatfield from table
  select concat(field1, ' ', field2) as concatfield from table

这将为您提供如下输出:

hello world

如果你想更新DB

中的字段,那么同样如此
 update table
 set concatfield =  field1 + ' ' + field2 --or concat(field1, ' ', field2)
 --where 1=1

答案 2 :(得分:1)

这是非常基本的

declare @Field varchar(10) = 'value' 
select @Field + @Field + @Field as comb 
select '@Field' + '@Field' + '@Field' as comp  

comb
------------------------------
valuevaluevalue

comp
------------------
@Field@Field@Field