我有一个表,其中每个条目的序列号可以是 1 或 2。我想根据当前年份的值选择其中一个选项。是否可以在 where 语句中执行以下操作:
(CASE sequence_number
WHEN cy.curyr < '41' THEN '1'
ELSE '2'
END ) sequence_number
正确的语法是:
(CASE WHEN cy.curyr < '41' THEN '1'
ELSE '2'
END ) as sequence_number
就您的查询而言,您只需删除初始的sequence_number
.
另外,您确定要进行字符串比较吗?这样做时,'5' < '41' 的计算结果为 false。
如果您不想要字符串比较:
(CASE WHEN cast(cy.curyr as int) < 41 THEN 1
ELSE 2
END ) as sequence_number
where 子句中的正确方法是
and sequence_number = case when cy.curyr < '41' then 1 else 2 end
是curyr
一个字符串吗?