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

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

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

Т.е фактически задача - повернуть заранее неизвестной длины столбец в строку...
...
Рейтинг: 0 / 0
25.08.2005, 17:58:05
    #33234817
AnatolyRyabov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно неизвестное количество неизвестных значений представить как столбцы...
Если бы можно было динамически формировать запрос в процедуре...
Или в MySql нонче это возможно?
...
Рейтинг: 0 / 0
25.08.2005, 19:48:52
    #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
26.08.2005, 13:38:11
    #33236107
AnatolyRyabov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно неизвестное количество неизвестных значений представить как столбцы...
Ясно...
С 4.1.12 значит отдыхаю...
И никто не знает каких-нибудь SQL-изысков...
??!
...
Рейтинг: 0 / 0
26.08.2005, 21:13:44
    #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
25.09.2005, 20:50:10
    #33287536
AnatolyRyabov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно неизвестное количество неизвестных значений представить как столбцы...
Очень здорово.
спасибо огровное - в любом случае очень полезный опыт.
Так или иначе транспонируется, а если ещё немного "навернуть", то очень сложные задачи решаются набором SQL-выражений.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нужно неизвестное количество неизвестных значений представить как столбцы... / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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