powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нужно неизвестное количество неизвестных значений представить как столбцы...
11 сообщений из 11, страница 1 из 1
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33234593
AnatolyRyabov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно ли результат одного запроса, возвращающего, допустим, неизестное заранее количество строк с одним столбцом, представить во внешнем запросе как набор столбцов???????

Если кто знает или же уже реализовывал - подскажите, пожалуйста.
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33234629
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мб лучше это реализовать на клиенте?
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33234726
AnatolyRyabov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не буду вдаваься в подробности, но если бы задача позволяла процедурно обработать на сервере или на клиенте, то вопросов бы не было.

Но мне нужно именно SQL-запрос чтобы так отрабатывал. Просто я не владею пока в совершенстве процедурными расширениями SQL для MySQL, от того не могу оценить возможность решения такой задачи. Вот и обращаюсь к более опытным коллегам. Т.е. к Вам.
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33234749
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно это вам немного поможет Транспонирование строк в столбцы , но динамически...
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33234805
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно все строки склеить в 1 переменную с желаемым разделителем, и вернуть эту переменную как 1 столбец, если такое устроит. Надо 3 оператора при этом.
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33234811
AnatolyRyabov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вот в этом "динамически и весь гвоздь"!
Как транспонировать строки по условию в столбцы с целюю применения каких-либо агрегатных функций я понимаю. Но ведь в примере-то набор столбцов определён! А мне нужно как раз чтобы он(набор результирующих столбцов) формировался на основании полученного набора строк с одним столбцом.

Т.е фактически задача - повернуть заранее неизвестной длины столбец в строку...
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33234817
AnatolyRyabov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если бы можно было динамически формировать запрос в процедуре...
Или в MySql нонче это возможно?
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33234981
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AnatolyRyabovЕсли бы можно было динамически формировать запрос в процедуре...
Или в MySql нонче это возможно?

from 5.0.8 >>
Using PREPARE to prepare a statement
that invoked a stored routine that deallocated the prepared
statement caused a server crash.
This is prevented by disabling dynamic SQL within stored routines.
(Bug #10975)

PS - к релизу починят, наверное. А с 5.0.1 до 5.0.7 оно работало, только
"caused a server crash."
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33236107
AnatolyRyabov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ясно...
С 4.1.12 значит отдыхаю...
И никто не знает каких-нибудь SQL-изысков...
??!
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33237080
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, ну для тонких ценителей - пожалуйста. Версия 4.1.3 надо. И подозреваю я что 500 колонок оно не съест. И к сожалению оно скрипт, процедуры нельзя. Про производительность молчу тоже. Ну как по-другому - я не знаю...
Код: plaintext
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.
mysql> drop table if exists  tmp_tbl;
Query OK,  0  rows affected ( 0 . 02  sec)

mysql> set @stm='create table tmp_tbl ( ', @ins='insert into tmp_tbl values (';
Query OK,  0  rows affected ( 0 . 00  sec)

mysql>
mysql> select count(*)
    -> into @r_count
    -> from
    -> (
    -> select
    ->   @stm:=concat(@stm,concat(concat('col', id),' int,')),
    ->   @ins:=concat(@ins,concat(id,','))
    -> from for_tree_tbl
    -> ) no_results_to_client_tbl;
Query OK,  1  row affected ( 0 . 00  sec)

mysql>
mysql>
mysql> set @stm:=concat(@stm,'end_col int) engine=memory'),@ins:=concat(@ins,concat(@r_count,')'));
Query OK,  0  rows affected ( 0 . 00  sec)

mysql>
mysql> prepare c_tbl_stm from @stm;
Query OK,  0  rows affected ( 0 . 00  sec)
Statement prepared

mysql>
mysql> execute c_tbl_stm;
Query OK,  0  rows affected ( 0 . 08  sec)

mysql>
mysql> deallocate prepare c_tbl_stm;
Query OK,  0  rows affected ( 0 . 00  sec)

mysql>
mysql> prepare i_data_stm from @ins;
Query OK,  0  rows affected ( 0 . 00  sec)
Statement prepared

mysql>
mysql> execute i_data_stm;
Query OK,  1  row affected ( 0 . 00  sec)

mysql>
mysql> deallocate prepare i_data_stm;
Query OK,  0  rows affected ( 0 . 00  sec)

mysql>
mysql> select * from tmp_tbl;
+------+------+------+------+------+------+---------+
| col1 | col2 | col3 | col4 | col5 | col6 | end_col |
+------+------+------+------+------+------+---------+
|     1  |     2  |     3  |     4  |     5  |     6  |        6  |
+------+------+------+------+------+------+---------+
 1  row in set ( 0 . 00  sec)

mysql>
...
Рейтинг: 0 / 0
Нужно неизвестное количество неизвестных значений представить как столбцы...
    #33287536
AnatolyRyabov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень здорово.
спасибо огровное - в любом случае очень полезный опыт.
Так или иначе транспонируется, а если ещё немного "навернуть", то очень сложные задачи решаются набором SQL-выражений.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нужно неизвестное количество неизвестных значений представить как столбцы...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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