|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Нужно возвращать помимо обычных данных строку представляющую собой перечисления через запятую единственной колонки некоторого подзапроса. Пример: АвторПроизведениеПушкинСказкиПушкинПовестиКипеловРеки ВремёнКипеловЯ свободенКипеловВавилонКипеловПророк АвторРезультат функции, одна строкаПушкинСказки, ПовестиКипеловРеки Времён, Я свободен, Вавилон, Пророк Как некоторую фиксированную сделать - знаю. Захотелось универсальную создать. Сперва была мысль передавать в функцию таблицу, точнее результат подзапроса типа (SELECT col FROM tbl), но кажется как я почитал нельзя передавать параметром таблицу. Тогда появилась идея использовать EXEC('') или EXEC sp_executesql '', но ета гадина снова не позволяет: авторInvalid use of a side-effecting operator 'EXECUTE STRING' within a function.авторOnly functions and some extended stored procedures can be executed from within a function. Подскажите как быть? :С ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 13:33 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Хобби, 1) xml 2) рекурсия ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 13:36 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 13:39 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
StarikNavy, можно подрбнее? Что мне гуглить-то? Guest123456, как раз первый запрос там это-то то что "фиксированную я знаю", я хочу чтоб оно не зависело от таблицы, более гибко. Для новых версий что-то странное, оно кроссплатформеннное? Представляю себе или так: Код: sql 1. 2. 3.
или так: Код: sql 1. 2. 3.
Итак, передавать параметром функции таблицу/запрос нельзя никак? А EXEC как-то можно заставить работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 14:45 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Зачем функция, а? Так работает? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Если уж так хочется, то содержимое подзапроса APPLY можно оформить в виде табличной инлайн функции. Да, а табличную переменную уже давно можно передать параметром в процедуру или функцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 15:25 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Хоббино ета гадина снова не позволяет:В функции ничего универсального написать не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 15:36 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
я хочу чтоб оно не зависело от таблицы, более гибко Универсальное никогда не работает быстро, качественно и не является легким в сопровождении. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 18:04 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
можно через CTE, но склеивать символьные поля это не задача SQL, а приложения которое его использует ( т.е. следующего уровня визуализация и т.п.) . Прошу отметить , что запрос не формирует новой информации, в отличии от агрегатных функций min(), sum() и т.п. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 09:27 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
напишите CLR User-Defined Aggregates ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10de_2devguide/html/5a188b50-7170-4069-acad-5de5c915f65d.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 09:49 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 09:55 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Хобби, можно так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 16:21 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Clr агрегаты. Но для 2005 максимальный размер склейки будет 8000 байт. Самое быстрое, как я понимаю - это через xml? Но там за раз все строки таблицы клеются ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 23:17 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Mike_za, for xml path('') - это то что нужно. все остальное это позапрошлый век. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2015, 11:22 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
А как тогда вывtсти в одну строку все из таблицы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 07:35 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
iivvvii А как тогда вывtсти в одну строку все из таблицы ? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 07:46 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Разобрался Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 07:49 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7.
Наверно все же так в вашем случае получается XML файл ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 08:08 |
|
Как сделать функцию для конкатенации столбца в строку?
|
|||
---|---|---|---|
#18+
iivvvii Код: sql 1. 2. 3. 4. 5. 6. 7.
Наверно все же так в вашем случае получается XML файл Только это "не фсе" и уже "не таблица". Хе-хе. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 13:17 |
|
|
start [/forum/topic.php?fid=46&msg=39962776&tid=1686069]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 154ms |
0 / 0 |