哦,伟大的SQL专家,我有以下场景。我必须多次执行相同的选择,每次只更改一个参数(S),例如:
DECLARE @company1 varchar(25)
set @company1 = AA
然后执行以下操作:
Select * from sales where Company_Name = @company1
宣布一个新的参数
set @company1 = BB
并循环返回以运行查询。
这适用于少数公司,每次运行可能有一些参数。 所以我想做的就是指定一次查询,只需在顶部添加@companyX声明。
由于
答案 0 :(得分:0)
关于如何将数据提供给参数或查询的上下文中的信息很少,因此这里有一些选项。
创建一个存储过程,并多次调用它:
binary
创建用户定义的表值函数。如果需要,可以从存储过程调用它:
JsonStream := TStringStream.Create('{"name": "ФЫВАПР.txt", "parent": {"id": "0"}}', TEncoding.UTF8);
try
MD.AddFormField('metadata', 'application/json', 'utf-8', JsonStream);
// send the post...
finally
JsonStream.Free;
end;
或者你是一个“IN”语句,可以为多个过滤器值(在本例中为公司名称)调用一次查询。
-- Stored procedure
create procedure dbo.GetSalesByCompany
@companyName varchar(25)
AS
SET NOCOUNT ON;
Select * from sales where Company_Name = @company1;
--Usage
exec dbo.GetSalesByCompany 'AA';
exec dbo.GetSalesByCompany 'BB';
-- Usage with params
DECLARE @company1 varchar(25)
set @company1 = 'AA';
exec dbo.GetSalesByCompany @company1;
set @company1 = 'BB';
exec dbo.GetSalesByCompany @company1;