我还无法弄清楚该怎么做。这可能不可行,或者这里的专家可能说这是这样做的非常不好的方法。
说我有tableA
,其中有一个我想询问的数据集的questions
列表。我的SELECT
语句设置为空的WHERE
语句。我想阅读tableA
的每一行,并使用我的WHERE
语句中列出的条件。
如何从表A一次引入一行结果,以便在我的主SQL的SELECT
/ WHERE
语句中显示和使用这些结果?
这有意义吗?
谢谢。
答案 0 :(得分:1)
您正在寻找Dynamic SQL。
假设您的表tableA
包含以下条件:
create table tableA (condition varchar(max));
insert into tableA values ('columnB1 > 0'), ('columnB2 <> ''Me''');
还有tableB
,我们将这些条件应用于的表格:
create table tableB (columnB1 int, columnB2 varchar(10));
insert into tableB values (-1, 'Not me'), (1, 'Me');
现在,您可以使用动态SQL,它将为@tableA
中的每一行创建单独的查询:
declare @sql varchar(max) = '';
select @sql = @sql + ' select * from MY_DATABASE.dbo.tableA where ' + condition
from tableA
exec(@sql)
答案 1 :(得分:0)
据我了解,您还可以使用嵌套选择,首先选择写一行查询,然后再从中选择查询。