2017-02-10 6 views
0

Я новичок на этой странице, и это первый раз, когда я задаю вопрос. Извините за что-то не так. Вопрос может быть старым, но я просто не могу найти ответ для SQL AnyWhere.
У меня есть таблица, какСоздайте список сгруппированных значений

Order | Mark 
======|======== 
1  | AA 
2  | BB 
1  | CC 
2  | DD 
1  | EE 

Я хочу, чтобы иметь результат следующим образом

Order | Mark 
1  | AA,CC,EE 
2  | BB,DD 

Мой текущий SQL является

Select Order, Cast(Mark as NVARCHAR(20)) 
From #Order 
Group by Order 

и просто дать мне результат совершенно то же самое с оригинальная таблица.

Любая идея для этого?

ответ

0

Вы можете использовать агрегатную функцию ASA LIST() (тестировался, возможно, потребуется заключить имя order столбца в кавычки, поскольку это также является зарезервированным именем):

SELECT Order, LIST(Mark) 
FROM #Order 
GROUP BY Order; 

Вы можете настроить разделитель и порядок если тебе надо.

Примечание: это довольно плохая идея

  • имя вашей таблицы и имя столбца с как регулярным пунктом SQL (Order by)
  • использовать то же имя для столбца в таблице (Order)
+0

он отлично работал, спасибо вам большое. Также спасибо за совет имени столбца и редактирование моего сообщения для лучшего просмотра. – ductoyo

+0

Добро пожаловать. Если вы решите проблему, вы должны [принять ответ] (http://meta.stackoverflow.com/a/65088/173356) ... – Seki