假设有一个表格( TB_dynamic_date ),其中column_name为“ Data_to_select ”
假设还有另一个带有列名的表 TB_Main_Data as 姓名,DOJ,id
那么,是否有可能以某种方式编写查询,通过该方式我可以获取动态编号。来自 TB_Main_Data 的列,使用表 TB_dynamic_date 其中 TB_dynamic_data 在“ Data_to_select ”下包含以下记录为字符串
1)Name,DOJ
2)Name,id
3)Name,id,DOJ
4)Name,id,DOj,Name||id
我需要做的事情如下: -
select **(1/2/3/4 record from TB_dynamic_data)** from TB_Main_Data
我希望,我能够清楚地解释,我想问的是什么。
答案 0 :(得分:1)
在Oracle中,这看起来像:
declare
v_columns varchar(4000);
v_sql varchar(4000);
begin
select data_to_selecct
into v_columns
from tb_dynamic_data
where <whatever>;
v_sql := 'select ' || v_columns || ' from tb_main_data';
execute immediate v_sql;
end;
答案 1 :(得分:0)
您可以使用下面的动态查询
Declare @cols= ( select Data_to_select from TB_Dynamic_data where Id=2)
Declare @query nvarchar(max)
Set @query = ' select ' + @cols + ' from TB_main_data'
Exec(@query)