SQL Server 2008 Express CONCAT()不存在?

时间:2011-12-17 20:32:44

标签: sql sql-server

我正在从MySQL切换到SQL Server 2008 Express,似乎找不到CONCAT() - esque函数。我有两列我想要组合成一个字符串并找到独特的组合。

id1          id2
001          abc1
002          qrs5
003          qrs5
003          abc1
...           ...

当我尝试以下操作时:

  select id1, id2, concat(id1,  ", ", id2) as combo1
  FROM db1
  group by combo1

我收到以下错误消息:

  

Msg 195,Level 15,State 10,Line 1   'concat'不是公认的内置函数名称。

有什么建议吗?

3 个答案:

答案 0 :(得分:35)

也许像是,

SELECT DISTINCT id1, id2, id1 + ', ' + id2
那会有用吗?

答案 1 :(得分:27)

您可以通过括在括号中来使用SQL 2008中的CONCAT(如果您真的想要)

{fn CONCAT(id1,id2)} AS combo1

注意:CONCAT只接受两个参数,因此如果你想连接两个以上的字符串,你必须嵌套它们:

{fn CONCAT(id1,{fn CONCAT(id2,id3)})} AS combo2

答案 2 :(得分:4)

SQL Server 2008中不存在

CONCAT,自SQL Server 2012以来它是新的。

你可以改用:

select id1, id2, id1 +  ", " + id2 as combo1
FROM db1
group by combo1