powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Динамический выбор колонки в селекте
14 сообщений из 14, страница 1 из 1
Динамический выбор колонки в селекте
    #39408049
leprechaun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, не соображу никак, есть таблица с attribute1..attributeN
И есть у меня список названий тех колонок что нужно выбрать

attribute1, attribute2, attribute3

Как выбрать данные типа Select СписокКолонок from table, чтобы только они в результат вывелись
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408054
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спросить у того, кто сделал такой неправильный дизайн БД. Накрайняк - в разделе форума по
используемому языку программирования. Здесь самоочевидным ответом будет
Код: sql
1.
Select attribute1, attribute2, attribute3 from table


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408057
leprechaun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я имею в виду как бы лучше выбрать из таблицы колонки, имея их имена списком второго селекта.

колонок attributeN много, а мне нужны в зависимости от ситуации только заполненные
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408083
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leprechaun,

Хранимкой. В нее передаешь список колонок, внутри в динамике формируешь SQL-запрос и выполняешь его через execute statement. Это если через одно место и с оговорками, что на выходе будет не больше 3-5-n колонок - тебе ж колонки еще вернуть нужно, ага?. Плюс геморрой с колонками разных типов обеспечен.

Резюмирую - лучше делать на клиенте, а не на сервере.
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408091
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Leprechaun!
You wrote on 20 февраля 2017 г. 19:05:36:

Leprechaun> Я имею в виду как бы лучше выбратьвернись в Соренто на Oracle.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408093
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leprechaunЯ имею в виду как бы лучше выбрать из таблицы колонки, имея их имена списком второго селекта.

А вот с этим - точно исключительно к идиоту-дизайнеру БД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408112
leprechaun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, прошу прощения за невежество, элементарный вопрос

select :var from table - как передать в переменную var имя колонки чтобы не саму переменную выводило
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408119
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leprechaunselect :var from table - как передать в переменную var имя колонки чтобы не саму переменную выводило

Через case, видимо

Код: sql
1.
2.
3.
4.
5.
select case :VAR
             when 'NAME1' then   FIELD1
             when 'NAME2' then   FIELD2
         end
 from MY_TABLE
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408121
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leprechaun> как передать в переменную var имя колонки

Обычно "выбрать что-то из неизвестной колонки/таблицы"
означает какие-то проблемы в дизайне/архитектуре БД, при
чём независимо от СУБД.

Сделать-то это можно (пару решений уже озвучили выше),
но лучше подумайте о более грамотном подходе.

P.S. А "известно" имя колонки становится на клиенте или
на сервере откуда-то формируется/выбирается ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408123
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leprechaun,

Есть стойкое ощущение, что ты пытаешся натянуть сову на глобус. Может лучше задачу переформулировать?
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408133
leprechaun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не очень опытен, таблицы стандартные. Смотрю список активных гибких полей для набора значений

SELECT
APPLICATION_COLUMN_NAME,
FROM
FND_DESCR_FLEX_COL_USAGE_VL
WHERE
DESCRIPTIVE_FLEX_CONTEXT_CODE =
(SELECT FLEX_VALUE_SET_NAME FROM fnd_flex_value_sets WHERE flex_value_set_id = :P_VS_ID)

список этот заранее считан в таблицу для динамического формирования колонок.
Далее мне нужны уже значения, в цикле перебираю колонки ATTRIBUTEN, подставляя в селект имя. Возможно связал не так.
Пока динамически оставил решение

sql_query1 := 'select';
sql_query2 := to_char(g_vtv_ogp_tbl(i).APPLICATION_COLUMN_NAME);
sql_query3 := 'from fnd_flex_values where flex_value_set_id = :P_VS_ID and flex_value_id = :P_STORAGE_VALUE and rownum = 1';

full_query := sql_query1 || ' ' || sql_query2 || ' ' || sql_query3;

OPEN sql_cur FOR full_query USING P_VS_ID, P_STORAGE_VALUE;

По идее в APPLICATION_COLUMN_NAME реальное имя колонки, но конечно натягиваю что-то на что-то)
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408141
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leprechaun> список этот заранее считан в таблицу для динамического формирования колонок.

Конкретнее задачу можешь озвучить?
Это какая-то CAD-система, АСУТП?
Почему нельзя один раз сформировать
нужный(е) запросы и использовать его?

leprechaun> Далее мне нужны уже значения, в цикле
leprechaun> перебираю колонки ATTRIBUTEN, подставляя в селект имя.

Зачем в цикле перебирать и подставлять в запрос
и перезапрашивать, если можно один раз собрать
все колонки и получить данные одним запросом?
Это несколько проще и намного дешевле, поверь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408170
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leprechaunЯ не очень опытен, таблицы стандартные.
Не, такой бред стандартным точно быть не может. В морг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамический выбор колонки в селекте
    #39408420
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leprechaunWHERE
DESCRIPTIVE_FLEX_CONTEXT_CODE =
(SELECT FLEX_VALUE_SET_NAME FROM
к чему этот старообрядческий способ? надо join писать.
http://www.ibase.ru/joins/
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Динамический выбор колонки в селекте
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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