it-swarm-pt.tech

O SQL Server 2008 Express CONCAT () não existe?

Estou mudando do MySQL para o SQL Server 2008 Express e não consigo encontrar uma função do tipo CONCAT (). Eu tenho duas colunas que estou tentando combinar em uma string e encontrar combinações únicas.

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

Quando tento o seguinte:

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

Eu recebi a seguinte mensagem de erro:

Mensagem 195, Nível 15, Estado 10, Linha 1
'concat' não é um nome de função incorporado reconhecido.

Alguma sugestão?

17
screechOwl

Talvez algo como,

SELECT DISTINCT id1, id2, id1 + ', ' + id2

isso funcionaria?

35
Bassam Mehanni

Você pode usar o CONCAT no SQL 2008 (se você realmente quiser) envolvendo entre colchetes

{fn CONCAT(id1,id2)} AS combo1

NOTA: CONCAT usa apenas dois argumentos, portanto, você deve aninhar-los se desejar concatenar mais de duas cadeias:

{fn CONCAT(id1,{fn CONCAT(id2,id3)})} AS combo2
27
william-1066

CONCAT não existe no SQL Server 2008, é novo desde o SQL Server 2012.

Você pode usar:

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