在运行时确定SQL From子句?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在运行时确定SQL From子句?相关的知识,希望对你有一定的参考价值。
我有一个table1,其中包含一个列,其中存储了其他表的名称。根据table1中的值,查询应该提取与其中给出的表名对应的数据。
例如,让存储tablename的表为tablelist(tablename,tableid)
让名称存储在表list.table名称中的其他表为A,B,C
基于给定的输入参数tableid,如果tablename中存储的值为“A”,则查询应提取相当于以下内容的结果:
Select A.name from A;
如果是'B',查询应该是:
Select B.type from B;
如果是'C',查询应该是:
Select C.msg from C;
如何将其作为单个查询接受表id作为输入?
请指教
答案
你可以尝试case when
结构:
select case tableid
when 'A' then (select name from a)
when 'B' then (select type from b)
when 'C' then (select msg from c)
end
from tbl
一些数据示例:
with
tablelist(tablename, tableid) as (
select 'A', 1 from dual union all
select 'B', 2 from dual union all
select 'B', 7 from dual union all
select 'C', 3 from dual ),
a(name) as (select 'Chris' from dual),
b(type) as (select 'T800' from dual),
c(msg) as (select 'Hello' from dual)
select case tablename
when 'A' then (select name from a)
when 'B' then (select type from b)
when 'C' then (select msg from c)
end as value
from tablelist
where tableid = 7
结果T800
。
以上是关于在运行时确定SQL From子句?的主要内容,如果未能解决你的问题,请参考以下文章
带有 ASP Classic 的 SQL(FROM 子句中的语法错误。)
如何从 UDF 参数提供 SELECT 语句的 FROM 子句
SQL Server 查询错误 -ORDER BY 子句在视图中无效
SQL Server查询错误-ORDER BY子句在视图中无效