Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
04.11.2020, 13:57
|
|||
---|---|---|---|
Развернуть строку в столбец |
|||
#18+
Здравствуйте. У меня есть система построения отчётов в которую можно передать sql запрос с параметром. Параметром может быть массив. И когда построитель отчёта видит в исходном запросе инструкцию IN(@ArrayParam1) в результирующем запросе он её подменяет на IN(@ArrayParam1_0,@ArrayParam1_1,...) создавая параметры для каждого элемента запроса. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Если же подставить @ArrayParam1 в select то будет сгенерирован select @ArrayParam1_0, @ArrayParam1_1,... Вопрос: Есть ли какой либо способ получить данные не в колонках, а в строках ? Т.е. как из select @ArrayParam1_0, @ArrayParam1_1,... получить таблицу с одной колонкой ? Количество колонок и их имена заранее не известны т.к. я не знаю сколько значений будет в исходном параметре @ArrayParam1. Для примера: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Помогите пожалуйста с запросом. Побороть своими силами не получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.11.2020, 14:48
|
|||
---|---|---|---|
|
|||
Развернуть строку в столбец |
|||
#18+
S_A_V_e, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.11.2020, 15:06
|
|||
---|---|---|---|
Развернуть строку в столбец |
|||
#18+
Нет. Такой вариант не подходит т.к. генератор просто подставляет строку вида @ArrayParam1_0, @ArrayParam1_1,... вместо исходного @ArrayParam1. Управлять этой генерацией и вставить что либо между @ArrayParam1_0 и @ArrayParam1_1 я не могу. Т.е. подставить это можно только в select и получить select @ArrayParam1_0, @ArrayParam1_1,... И вот из него нужно как то положить данные в табличку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.11.2020, 16:11
|
|||
---|---|---|---|
Развернуть строку в столбец |
|||
#18+
S_A_V_e генератор просто подставляет строку вида @ArrayParam1_0, @ArrayParam1_1,... вместо исходного @ArrayParam1. т.е. так и остается Код: sql 1.
или, всё-таки, как-то так Код: sql 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.11.2020, 16:22
|
|||
---|---|---|---|
Развернуть строку в столбец |
|||
#18+
S_A_V_e У меня есть система построения отчётов в которую можно передать sql запрос с параметром. Параметром может быть массив. И когда построитель отчёта видит в исходном запросе инструкцию IN(@ArrayParam1) в результирующем запросе он её подменяет на IN(@ArrayParam1_0,@ArrayParam1_1,...) создавая параметры для каждого элемента запроса. ... Если же подставить @ArrayParam1 в select то будет сгенерирован select @ArrayParam1_0, @ArrayParam1_1,... Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.11.2020, 12:07
|
|||
---|---|---|---|
Развернуть строку в столбец |
|||
#18+
Не умеет с values работать. Получается во это: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.11.2020, 14:38
|
|||
---|---|---|---|
Развернуть строку в столбец |
|||
#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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.
Спасибо всем кто поучаствовал. Вопрос в целом решен. Если знаете как сделать то же самое проще - напишите пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.11.2020, 16:43
|
|||
---|---|---|---|
|
|||
Развернуть строку в столбец |
|||
#18+
S_A_V_e, пригодиться может лишь тому, у кого ваша оригинальная "система построения отчётов". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.11.2020, 09:06
|
|||
---|---|---|---|
Развернуть строку в столбец |
|||
#18+
Telerik.Reporting. Я точно не единственный кто её использует. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.11.2020, 10:54
|
|||
---|---|---|---|
Развернуть строку в столбец |
|||
#18+
S_A_V_e Если знаете как сделать то же самое проще - напишите пожалуйста. раз уж дело дошло до парсинга, то все эти "приседания" с рекурсией точно не нужны replace-а достаточно :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1685441]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 157ms |
0 / 0 |