if(OBJECT_ID('EgTb')is not null)drop table [EgTB];
GO
create table [EgTB](Name varchar(50),country varchar(50))
insert into EgTB values('aaa','sg');
insert into EgTB values('bbb','uk');
insert into EgTB values('ccc','us');
insert into EgTB values('ddd','au');
GO
select * from EgTB;
declare @cou varchar(50), @firstCou varchar(50), @secondCou varchar(50);
set @firstCou='sg';
set @secondCou='uk';
if(@cou is null)
begin
set @cou=@firstCou+','+@secondCou;
end
select * from EgTB where (@cou is null or country in (@cou));
GO
if(OBJECT_ID('EgTb')is not null)drop table [EgTB];
GO
Код выше - тот, который я стимулировал.
есть переменная @cou
.
Эта переменная та, где используется.
что я хочу ... если @cou
равно нулю, я хочу использовать @firstCou
и @secondCou
.
Вместо того, чтобы делать where country in (@firstCou,@secondCou)
Я хочу where country in (@cou)
с этими двумя значениями переменных в @cou
.
потому что реальная вещь - это не 2 дополнительные переменные. Я получу несколько записей и не буду знать фиксированную запись.
Вот почему я хочу использовать IN()
Но моя проблема в том, что когда я добавляю эти 2 значения в @cou
, значение @cou
становится 'sg,uk'
вместо 'sg','uk'
.
ожидается, но как я могу сделать так, чтобы оно стало 'sg','uk'