powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как склеить две строчки результирующего набора в одну ?
11 сообщений из 11, страница 1 из 1
Как склеить две строчки результирующего набора в одну ?
    #38824893
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть два запроса, которые возвращают ID пользователя и его параметры.
В итоге выводится так:

Код: sql
1.
2.
3.
4.
5.
ID  param
1   '1'
1   '2'
2  '1'
3  '2'



в param может быть строго либо 1 либо 2 либо 1/2 (если нет ничего, то такое просто в запрос не попадет).


Вопрос. Как сделать, чтобы вывод был

Код: sql
1.
2.
3.
4.
ID  param
1   '1/2'
2  '1'
3  '2'



Спасибо !
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824902
icprog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ProBiotek,

FAQ
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824913
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT id
, CAST(CASE SUM(/* DISTINCT*/ CAST(param AS INT)) 
       WHEN 1 THEN '1'
       WHEN 2 THEN '2'
       WHEN 3 THEN '1/2'
       END 
       AS CHAR(3)
      )param
FROM MyQuery
GROUP BY id
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824918
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
icprog,

хм... Все решения через создание процедуры ?
А через простой SQL можно ?
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824919
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс... внешний каст не нужен же ж...
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824926
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekicprog,

хм... Все решения через создание процедуры ?
А через простой SQL можно ?

где там "через создание процедуры", вы точно прочитали faq?
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824928
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekicprog,

хм... Все решения через создание процедуры ?
А через простой SQL можно ?

Смотрите ссылку ещё раз.
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824937
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT id
, CAST(CASE SUM(/* DISTINCT*/ CAST(param AS INT)) 
       WHEN 1 THEN '1'
       WHEN 2 THEN '2'
       WHEN 3 THEN '1/2'
       END 
       AS CHAR(3)
      )param
FROM MyQuery
GROUP BY id



О !! гениально.
Спасибо !
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824943
Jovanny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
WITH S AS 
(SELECT * FROM (VALUES(1, '1'), (1, '2'), (2, '1'), (3, '2')) AS T(ID, param))
SELECT DISTINCT ID, LEFT(P.C, LEN(P.C) - 1) FROM S CROSS APPLY (SELECT T.param + '/' AS 'text()'
		  FROM S AS T WHERE T.ID = S.ID
		  FOR XML PATH ('')) AS P(C)
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824950
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jovanny
Код: sql
1.
2.
3.
4.
5.
WITH S AS 
(SELECT * FROM (VALUES(1, '1'), (1, '2'), (2, '1'), (3, '2')) AS T(ID, param))
SELECT DISTINCT ID, LEFT(P.C, LEN(P.C) - 1) FROM S CROSS APPLY (SELECT T.param + '/' AS 'text()'
		  FROM S AS T WHERE T.ID = S.ID
		  FOR XML PATH ('')) AS P(C)



Мне кажется вариант через CASE выше гораздо понятней и проще :)
...
Рейтинг: 0 / 0
Как склеить две строчки результирующего набора в одну ?
    #38824954
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekМне кажется вариант через CASE выше гораздо понятней и проще :)
Точно. Особенно для данных вида

ID param
1 '1'
1 'A'
2 'B'
3 'C'
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как склеить две строчки результирующего набора в одну ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]