我正在尝试在where子句中包含一个CASE STATEMENT,以根据两种形式的条件显示所有记录。我在下面遇到很多语法错误,想知道我缺少什么?
...
AND
CASE WHEN (TypeName = 'Category1' or TypeName = 'Category2') THEN
Headers.HeaderDate < DATEADD(dd,1,@ReportDate)
ELSE
Headers.TimeStamp < DATEADD(dd,1,@ReportDate)
END
答案 0 :(得分:3)
case返回一个值,而不是条件,所以您想要
AND CASE WHEN (TypeName = 'Category1' or TypeName = 'Category2')
THEN Headers.HeaderDate ELSE Headers.TimeStamp END < DATEADD(dd,1,@ReportDate)
答案 1 :(得分:2)
有一种方法可以不使用case语句
<path>/model.ckpt-XXX
如果and (
(Typename in ('Category1','Category2') and Headers.HeaderDate < DATEADD(dd,1,@ReportDate)
or (Typename not in ('Category1','Category2') and Headers.TimeStamp < DATEADD(dd,1,@ReportDate)
)
可以是Typename
,则还应牢记。