идентификатор группировки со строковым значением вместо целого числа SQL GROUP BY - PullRequest
0 голосов
/ 14 мая 2011

В Google я только что нашел группу по сумме (целочисленное значение).Как я могу сгруппировать по строковому значению?Для таблицы:

No   Place    Car 
---  ------   --------
1    NY       VRM1
1    BT       VLI
2    NY       GAR
3    GT       GAR

Как группировать по «Нет»?Я попытался:

SELECT No, place, Car 
FROM  APPEL
GROUP BY No, Place, Car

Но это не сработало.

Я хочу иметь такую ​​таблицу

No   Place    Car 
---  ------   --------
1    NY,BT    VRM1,VLI
2    NY       GAR
3    GT       GAR

1 Ответ

4 голосов
/ 14 мая 2011
-- Sample data
with T (No,   Place,    Car) as
(
select 1,    'NY',       'VRM1' union all
select 1,    'BT',       'VLI' union all
select 2,    'NY',       'GAR' union all
select 3,    'GT',       'GAR'
)

-- The query
select
  T.No,
  stuff((select ','+T2.Place
         from T as T2 
         where T.No = T2.No
         for xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, '') as Place,
  stuff((select ','+T2.Car
         from T as T2 
         where T.No = T2.No
         for xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, '') as Car
from T
group by T.No
...