Как динамически выбрать колонку из таблицы?
скажем есть таблица, примерно такого содержания.
Код:
id int
col int
option0 varchar(255)
option1 varchar(255)
option2 varchar(255)
...
option20 varchar(255)
col int
option0 varchar(255)
option1 varchar(255)
option2 varchar(255)
...
option20 varchar(255)
можно ли отображать необходимую колнку option исходя из col, т.е.
Код:
select
col,
concat('option', col) -- здесь нужно выбрать option0, option1, и т.д.
from table1
col,
concat('option', col) -- здесь нужно выбрать option0, option1, и т.д.
from table1
сенкс.
Код:
select concat('<option>', if (option1='good option', option1, 'other option'), '</option>') from option_table
Смотря где, но помойму нет....
Забыл сказать. Нужно для MySQL.
Но почему бы не оспользовать функцию IIf:
Примерно так:
Код:
SELECT table1.col, IIf(table1.col = 0, table1.option0, table1.option1) AS ColumnName
FROM table1
FROM table1
и т.д.(вложенные Iif'ы).
Так как ты говоришь, ИМХО, нельзя.
[/QUOTE]
Жаль :(
[QUOTE="koltaviy"]
о почему бы не оспользовать функцию IIf:
[/QUOTE]
Я так и сделал, но там 20 колонок, соответственно 19 вложенных ифов :). Хочется найти более красивое решение.
Цитата: JB13
Я так и сделал, но там 20 колонок, соответственно 19 вложенных ифов :). Хочется найти более красивое решение.
Головой надо было думать. Подобный геморрой - из-за ошибки проектирования. База нереляционная - что представлено у вас колонками, надо вынести в отдельную таблицу.
В Oracle для таких случаев есть динамический SQL, но я не знаю потдерживает ли его Мускул....
Головой надо было думать. Подобный геморрой - из-за ошибки проектирования. База нереляционная - что представлено у вас колонками, надо вынести в отдельную таблицу.
[/quote]
Я обычно этим и думаю. :) Это в TorrentStrike так реализовано голосование.