gpt4 book ai didi

sql - 将列名称从单独的表插入到存储过程 SELECT 语句中

转载 作者:行者123 更新时间:2023-12-05 01:13:04 26 4
gpt4 key购买 nike

我正在尝试找出将 Table1 中保存的列名插入针对 Table2 运行的 SELECT 语句的最佳方法。此查询在存储过程中运行。这并不能很好地解释,所以假设我在表 1 中有这些值:

enter image description here

我想做的是在针对 Table2 的 SELECT 语句中使用这些列名:

Select -- Column Names
from Table2
where UserId = 3;

我不确定是否可以以这种方式使用输入参数或如何将值传递给它。例如:

Select @ColumnNames
from Table2
where UserId = 3;

或者可能连接到表 2?

谢谢!

最佳答案

你将不得不使用动态 SQL

declare @columns varchar(1000)
declare @sql varchar(8000)
select @columns='', @sql=''

select @columns=@columns+value+',' from table1

set @columns=left(@columns,len(@columns)-1)
set @sql='select '+@columns+' from table2'
exec(@sql)

但要小心 SQL 注入(inject)并阅读 www.sommarskog.se/dynamic_sql.html

关于sql - 将列名称从单独的表插入到存储过程 SELECT 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31989116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com