Sql server 对指定的多个参数执行相同的SQL select

Sql server 对指定的多个参数执行相同的SQL select,sql-server,sql-server-2008,stored-procedures,Sql Server,Sql Server 2008,Stored Procedures,哦,伟大的SQL专家,我有以下场景。我必须多次执行相同的选择,每次只更改一个参数,例如: DECLARE @company1 varchar(25) set @company1 = AA 然后运行以下命令: Select * from sales where Company_Name = @company1 声明一个新参数 set @company1 = BB 并循环返回以运行查询 这可能适用于一些公司,也可能是每次运行的几个参数。 所以我只想指定一次查询,然后在顶部添加@company

哦,伟大的SQL专家,我有以下场景。我必须多次执行相同的选择,每次只更改一个参数,例如:

DECLARE @company1 varchar(25)
set @company1 = AA
然后运行以下命令:

Select * from sales where Company_Name = @company1
声明一个新参数

 set @company1 = BB
并循环返回以运行查询

这可能适用于一些公司,也可能是每次运行的几个参数。 所以我只想指定一次查询,然后在顶部添加@companyX声明


谢谢

问题中几乎没有关于如何向参数或查询提供数据的上下文的信息,因此这里有一些选项

创建一个存储过程,并多次调用它:

-- 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;
创建用户定义的表值函数。如果需要,可以从存储过程中调用:

-- User defined table-valued function
Create Function dbo.udf_GetSalesByCompany
(@companyName varchar(25) )

RETURNS TABLE AS
RETURN Select * from sales where Company_Name = @company1;

--Usage
SELECT * FROM dbo.udf_GetSalesByCompany('AA');
SELECT * FROM dbo.udf_GetSalesByCompany('BB');

-- Usage with params
DECLARE @company1 varchar(25)
set @company1 = 'AA';
SELECT * FROM dbo.udf_GetSalesByCompany(@company1);
set @company1 = 'BB';
SELECT * FROM dbo.udf_GetSalesByCompany(@company1);
或者使用“IN”语句调用查询一次,对于多个过滤器值,在本例中为公司名称

--Use and "IN" statement
Select * from sales where Company_Name IN('AA', 'BB')

问题中几乎没有关于如何向参数或查询提供数据的上下文的信息,因此这里有一些选项

创建一个存储过程,并多次调用它:

-- 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;
创建用户定义的表值函数。如果需要,可以从存储过程中调用:

-- User defined table-valued function
Create Function dbo.udf_GetSalesByCompany
(@companyName varchar(25) )

RETURNS TABLE AS
RETURN Select * from sales where Company_Name = @company1;

--Usage
SELECT * FROM dbo.udf_GetSalesByCompany('AA');
SELECT * FROM dbo.udf_GetSalesByCompany('BB');

-- Usage with params
DECLARE @company1 varchar(25)
set @company1 = 'AA';
SELECT * FROM dbo.udf_GetSalesByCompany(@company1);
set @company1 = 'BB';
SELECT * FROM dbo.udf_GetSalesByCompany(@company1);
或者使用“IN”语句调用查询一次,对于多个过滤器值,在本例中为公司名称

--Use and "IN" statement
Select * from sales where Company_Name IN('AA', 'BB')

如何用不同的值填充参数?您能展示一下您的整个过程吗?如何用不同的值填充参数?你能展示一下你的整个过程吗?