Подтвердить что ты не робот

SQL Server 2008 Express CONCAT() не существует?

Я делаю переход от 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, уровень 15, состояние 10, строка 1
"concat" не является признанным встроенным именем функции.

Любые предложения?

4b9b3361

Ответ 1

Возможно, что-то вроде

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

будет работать?

Ответ 2

Вы можете использовать CONCAT в SQL 2008 (если вы действительно хотите), заключая в скобки

{fn CONCAT(id1,id2)} AS combo1

ПРИМЕЧАНИЕ. CONCAT принимает только два аргумента, поэтому вы должны их вложить, если вы хотите объединить более двух строк:

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

Ответ 3

CONCAT не существует в SQL Server 2008, он является новым с SQL Server 2012.

Вместо этого вы можете использовать

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