各エントリに 1 または 2 のシーケンス番号を付けることができるテーブルがあります。現在の年の値に基づいて、これらのオプションのいずれかを選択したいと考えています。whereステートメントで次のことを行うことは可能ですか:
(CASE sequence_number
WHEN cy.curyr < '41' THEN '1'
ELSE '2'
END ) sequence_number
where句の正しい方法は
and sequence_number = case when cy.curyr < '41' then 1 else 2 end
でもcuryr
文字列ですか?
正しい構文は次のとおりです。
(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