Sql server 我们可以在sql中将Case设置为特定列吗
这部分给出了语法错误 当@day=1时,则Day1=1Sql server 我们可以在sql中将Case设置为特定列吗,sql-server,Sql Server,这部分给出了语法错误 当@day=1时,则Day1=1 declare @Day int declare @Flag nvarchar(2) set @Flag='L' set @Day=1 select * from [IIFL_Schedule].dbo.IIFL_Corporate where Ticker =@Flag and( case when @day=1 then Day1=1
declare @Day int
declare @Flag nvarchar(2)
set @Flag='L'
set @Day=1
select * from [IIFL_Schedule].dbo.IIFL_Corporate
where Ticker =@Flag and(
case when @day=1 then Day1=1
when @day=2 then Day2=1
when @day=3 then Day3=1
end )
试试看
或
尝试下面的查询
declare @Day int
declare @Flag nvarchar(2)
set @Flag='L'
set @Day=1
select *
from [IIFL_Schedule].dbo.IIFL_Corporate
where Ticker=@Flag
and (
case @day -- !!!
when 1 then Day1
when 2 then Day2
when 3 then Day3
end = 1 -- !!!
)
declare @Day int
declare @Flag nvarchar(2)
set @Flag='L'
set @Day=1
select *
from [IIFL_Schedule].dbo.IIFL_Corporate
where Ticker=@Flag
and (
case
when @day=1 then Day1
when @day=2 then Day2
when @day=3 then Day3
end = 1 -- !!!
)
declare @Day int
declare @Flag nvarchar(2)
set @Flag='L'
set @Day=1
select *
from [IIFL_Schedule].dbo.IIFL_Corporate
where Ticker=@Flag
and (
case @day -- !!!
when 1 then Day1
when 2 then Day2
when 3 then Day3
end = 1 -- !!!
)
declare @Day int
declare @Flag nvarchar(2)
set @Flag='L'
set @Day=2
select * from [IIFL_Schedule].dbo.IIFL_Corporate
where Ticker =@Flag and 1 =
(
case when @day=1 then Day1
when @day=2 then Day2
when @day=3 then Day3
end )