在WHERE子句中使用字符串值作为布尔值
问题描述:
是否有可能在where子句中使用值作为类型字符串。像这样:在WHERE子句中使用字符串值作为布尔值
select * from
(
select datepart(dw,b.Date) as Tag,b.[Customer No_],b.Date,b.[POS Holiday],b.Nonworking,
case
when datepart(dw,b.Date)=1 then (select '[Valid at Monday]=1')
when datepart(dw,b.Date)=2 then (select '[Valid at Tuesday]=1')
when datepart(dw,b.Date)=3 then (select '[Valid at Wednesday]=1')
when datepart(dw,b.Date)=4 then (select '[Valid at Thursday]=1')
when datepart(dw,b.Date)=5 then (select '[Valid at Friday]=1')
when datepart(dw,b.Date)=6 then (select '[Valid at Saturday]=1')
when datepart(dw,b.Date)=7 then (select '[Valid at Sunday]=1')
end as TestB
from [CustomerBPCal] b
) as a
left join [CustomerShopAndArrivalTime] as c on c.[Customer No_]=a.[Customer No_] where a.TestB
如果是,我该如何更改我的代码来运行这样的查询?
答
标准属于WHERE
条款。看来你只是想这样做:
WHERE (datepart(dw, b.Date) = 1 And [Valid at Monday] = 1)
OR (datepart(dw, b.Date) = 2 And [Valid at Tuesday] = 1)
OR ...
,或者万一[Valid at ...]
列属于outher当然ON
子句中加入表CustomerShopAndArrivalTime
,则:
ON c.[Customer No_] = a.[Customer No_]
AND
( (datepart(dw, b.Date) = 1 And c.[Valid at Monday] = 1)
OR (datepart(dw, b.Date) = 2 And c.[Valid at Tuesday] = 1)
OR ...
)
你想添加'哪里a.testb ='somevalue''?如果是这样,请随时添加并检查。 –
例如我想用'where'[在周一有效] = 1' – Kaja