我有 3 个条件,根据每个条件我需要运行一个单独的查询。像这样的东西:
Declare @p1 varchar, @p2 varchar, @p3 varchar, @q1 varchar, @q2 varchar , @q3 varchar
set @p1 = 'type'
set @p2 = ( select top 1 from myTable where column = '8')
set @p3 = '1234'
set @q1 = ' select * from foo '
set @q2 = ' select * from foobar '
set @q3 = ' select * from reallyfoobarred '
if @p1 = @p2 // if this is true execute query 1
begin
EXEC (@q1)
end
if @p1 = 'fish' // if this is true execute query 2
begin
exec (@q2)
end
if @p1 = 'cats' // if this is true execute query 3
begin
EXEC (@q3)
end
问题是必须为每个查询重新声明和设置变量。有没有办法只声明一次变量?我现在正在考虑 3 个单独的存储过程。如果没有必要,我不想这样做。