SQL Server 2008 Express CONCAT()不存在?

scr*_*Owl 17 sql sql-server

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

id1          id2
001          abc1
002          qrs5
003          qrs5
003          abc1
...           ...
Run Code Online (Sandbox Code Playgroud)

当我尝试以下内容时:

  select id1, id2, concat(id1,  ", ", id2) as combo1
  FROM db1
  group by combo1
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

消息195,级别15,状态10,行
1'concat'不是公认的内置函数名称.

有什么建议?

Bas*_*nni 36

也许是这样的,

SELECT DISTINCT id1, id2, id1 + ', ' + id2
Run Code Online (Sandbox Code Playgroud)

那会有用吗?

  • @screechOwl:Bassam建议的仅仅是"CONCAT()"的替代品.它做了同样的事情:`+`表示当操作数是字符串时T-SQL中的连接. (7认同)

小智 27

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

{fn CONCAT(id1,id2)} AS combo1
Run Code Online (Sandbox Code Playgroud)

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

{fn CONCAT(id1,{fn CONCAT(id2,id3)})} AS combo2
Run Code Online (Sandbox Code Playgroud)

  • 用户,谢谢你实际回答这个问题. (2认同)