Как запросить строку из таблицы - PullRequest
0 голосов
/ 28 апреля 2018

enter image description here

Как мы видим, определение столбца - это SQL-запрос, который будет производить два столбца: id и code.

У меня вопрос, как выполнить SQL-запрос в определении и получить только столбец code?

Чем короче, тем лучше.

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

Одним из способов является использование запроса в столбце «определение» в качестве таблицы для выбора из

SELECT code FROM 
(select id, code from programs where offeredby=89 and career='PG') AS definiton_query

Другим вариантом было бы сделать некоторое распознавание образов и извлечь предложение where из столбца 'Definition', объединить его с "SELECT code FROM Programs" и затем выполнить эту команду

0 голосов
/ 28 апреля 2018

Вы можете построить запрос, выполнив:

select 'select code from (' ||
       concat_ws(' union all ', definition) ||
       ') u'
from t
where . . .;

К сожалению, SQL не разрешает непосредственное выполнение оператора, кроме как в функциональном блоке, где вы можете использовать execute using.

0 голосов
/ 28 апреля 2018

Вы можете использовать этот запрос для PostgreSQL:

select replace(definition,'id,','') as definition_updated from acad_object_groups;

result:
                      definition_updated
--------------------------------------------------------------
 select code from programs where offeredby=89 and career='UG'
 select code from programs where offeredby=89 and career='PG'

Это дает измененные запросы только с колонкой code. Затем они могут запускаться индивидуально через приложение.

Если вы хотите фактически выполнить каждое значение столбца definition как команду SQL, а затем только извлечь столбец code, можно использовать следующее. Число таких запросов, которые будут выполнены индивидуально, будет количеством значений, существующих в столбце definition:

select code from (execute-value-from-existing-definition-column);

example:
select code from (select id,code from programs where offeredby=89 and career='UG') as a;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...