如何从表中查询字符串

时间:2018-04-28 07:09:12

标签: sql postgresql

enter image description here

正如我们所看到的,列定义是一个SQL查询,它将生成两列:idcode

我的问题是如何在定义中执行SQL查询,只获取列code

越短越好。

3 个答案:

答案 0 :(得分:0)

您可以将此查询用于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;

答案 1 :(得分:0)

一种方法是使用'definition'列中的查询作为要从中选择的表

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

另一种选择是进行一些模式识别并从'definition'列中提取where子句并将其与“SELECT code FROM programs”组合,然后执行该命令

答案 2 :(得分:0)

您可以通过执行以下操作构建查询:

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

不幸的是,SQL不允许直接执行该语句,除非在您可以使用execute using的功能块中。