|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
есть код Код: sql 1.
выдает в разных строках name1 name2 name3 как сделать чтобы выдавал в одной ячейки? name1 name2 name3 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2021, 20:15 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2021, 20:27 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
komrad, а как не используя sys.columns может функции какие то есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2021, 20:40 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Romanov-krd, у вас какие-то религиозные ограничения на чтение справки? https://docs.microsoft.com/ru-ru/sql/t-sql/functions/string-functions-transact-sql?view=sql-server-ver15 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2021, 20:46 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Romanov-krd komrad, а как не используя sys.columns может функции какие то есть? в том примере таблица sys.columns, а у вас t1 просто поправьте запрос под ваши нужды ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2021, 22:07 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2021, 22:31 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Romanov-krd Как я понимаю, значение поля name из трёх записей собрать в строку и вывести одной записью. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2021, 19:19 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Что за бред с юнионами ? А если их понадобится 20 ? Динамический скл тоже не всегда применим. Сделайте функцию: declare @str varchar(500) set @str='' select @str = @str+','+ MyField.... from MyTable ..... where ... можно навернуть сложную логику. Oчень удобно применять эту ф-цию в секции select. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2021, 11:12 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
L_argo Что значит бред, это для примера, понятное дело вместо юниона будет какая то своя таблица. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2021, 13:44 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
L_argo Oчень удобно применять эту ф-цию в секции select Ага. Скалярку. Внутри которой ещё и запрос. Быстродействие будет самое то. Нормальных вариантов для использования в запросе здесь 2: string_agg, если позволяет версия, и for xml path(''), если не позволяет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2021, 17:22 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Внутри которой ещё и запрос. Быстродействие будет самое то.Ну и пусть будет. Кому мешает ? :) Многократно применял данный подход на выборках из десятков млн. строк. Ниодного случая с негативным результатом. Удобство и гибкость гораздо важнее "медленного" запроса, обычно выполняемого ночью. На самом деле остальные подходы существенно ничем не быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 10:10 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
L_argo Внутри которой ещё и запрос. Быстродействие будет самое то. Многократно применял данный подход на выборках из десятков млн. строк. Ниодного случая с негативным результатом. Удобство и гибкость гораздо важнее "медленного" запроса, обычно выполняемого ночью. На самом деле остальные подходы существенно ничем не быстрее.Вы, когда в сарказме упражняетесь, ставьте какие-нибудь смайлики, что ли. Мы-то понимаем, о чем речь, а вот новички могут и повестись. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 10:18 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Ennor Tiegael Вы, когда в сарказме упражняетесь, ставьте какие-нибудь смайлики, что ли. Мы-то понимаем, о чем речь, а вот новички могут и повестись. Было буквально пару случаев, когда подход создавал критичные тормоза (но и код в ф-ции был вынужденно сложным). Приходилось идти немного другими путями. Но в 99% случаев подход идеально просто и быстро решал задачу. Без малейших проблем с производительностью. Помним, что время разработчика также критично для бизнеса, как и скорость кода, который он пишет. зы: Коллеги-хейтеры, лучше бы Вы хейтили мегатормозой промышленный код от MS, Adobe и прочих 1С. И не забыть упомянуть тормоза Джавы/ЖС и прочих питонов. Хочется поумничать ? ОК. Выкладывайте сравнительное исследование про плюсы/минусы каждого из подходов. А публика пусть оценивает... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 11:31 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
L_argo На самом деле остальные подходы существенно ничем не быстрее. https://web.archive.org/web/20071227134945/http://support.microsoft.com/kb/287515 ЗЫ: И обсуждалось это уже многократно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 13:31 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Ну, может так Код: sql 1.
https://www.sqlservertutorial.net/sql-server-string-functions/sql-server-string_agg-function/] ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 14:29 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Ролг Хупин Ну, может так Код: sql 1.
https://www.sqlservertutorial.net/sql-server-string-functions/sql-server-string_agg-function/] ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 15:25 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
L_argo Ролг Хупин Ну, может так Код: sql 1.
https://www.sqlservertutorial.net/sql-server-string-functions/sql-server-string_agg-function/] ТС же не написал, для какой версии вопрос ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 15:28 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
L_argo Хочется поумничать ? ОК. Выкладывайте сравнительное исследование про плюсы/минусы каждого из подходов. А публика пусть оценивает... Да не вопрос. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 07:09 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Спасибо. Хорошее сравнение. Первая конструкция значительно быстрее. А как будет выглядеть конструкция, если понадобится применить сцепку полей с группировкой ? А если нужно использовать более одной такой конструкции в одном запросе ? В случае скалярной ф-ции достаточно вставить ее в секцию group by. Если таких ф-ций будет не одна - тоже не проблема. Да, скорость при этом будет не очень. Но критичным это будет далеко не всегда. По моим наблюдениям - редко. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 10:45 |
|
Как объединить несколько строк в одну
|
|||
---|---|---|---|
#18+
L_argo В случае скалярной ф-ции достаточно вставить ее в секцию group by. Если таких ф-ций будет не одна - тоже не проблема. Сделать из подзапроса cross apply с for xml инлайновую табличную функцию тоже не проблема. Быстродействие будет практически то же самое, как и у варианта с подзапросом. И в group by вставлять поле из инлайновой функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 11:07 |
|
|
start [/forum/topic.php?fid=46&msg=40119874&tid=1684012]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 148ms |
0 / 0 |