1

各エントリに 1 または 2 のシーケンス番号を付けることができるテーブルがあります。現在の年の値に基づいて、これらのオプションのいずれかを選択したいと考えています。whereステートメントで次のことを行うことは可能ですか:

(CASE sequence_number 
    WHEN cy.curyr < '41' THEN '1' 
    ELSE '2' 
       END ) sequence_number
4

2 に答える 2

1

where句の正しい方法は

and sequence_number = case when cy.curyr < '41' then 1 else 2 end

でもcuryr文字列ですか?

于 2013-01-28T16:00:53.853 に答える
1

正しい構文は次のとおりです。

(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
于 2013-01-28T15:57:16.607 に答える