我有以下查询:

select *
from cars
where make in ('BMW', 'Toyota', 'Nissan')

我想做的是将where参数存储在SQL变量中。

就像是:
declare @caroptions varchar(max);
select @caroptions =  select distinct(make) from carsforsale;
print @caroptions;
select * from cars where make in (@caroptions)

问题是@caroptions的打印仅返回了以下结果:
select distinct(make) from carsforsale;

我希望它存储多个值。

有任何想法吗?

最佳答案

您可以使用表变量:

declare @caroptions table
(
    car varchar(1000)
)

insert into @caroptions values ('BMW')
insert into @caroptions values ('Toyota')
insert into @caroptions values ('Nissan')

select * from cars where make in (select car from @caroptions)

关于SQL Server在sql变量中存储多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17745421/

10-10 02:41