1

以下のコードは私にとってはうまくいきません。可能であれば回避策を​​教えてください。

日付に基づいて特定の要素を除外しようとしていますが、うまくいきません。

これまでの私のコードは次のようになります。

SELECT CASE  
WHEN date > '2013'  
       THEN element NOT IN ('e1', 'e2', 'e3') --exclude 3 elements  
       WHEN date > '2012' AND date <= '2013'  
       THEN element NOT IN ('e2', 'e3') --exclude 2 elements  
       WHEN date > '2011' AND date <= '2012'  
       THEN element NOT IN ('e3') --exclude 1 element  
       WHEN date <= '2011'  
       THEN element -- no elements excluded  
       END  
FROM elementTable 

これは疑似コードです。SQL によって表示されるエラーは、「NOT の構文が正しくありません」です。理由はよくわかりませんが、私の NOT IN 宣言が気に入らないようです。

どんな種類のヒント、ヒント、またはヘルプも大歓迎です。

前もって感謝します。

4

2 に答える 2

0

while ステートメントTHENのセクションに式を追加しようとしています。条件をセクションに移動しようとするCASE代わりに、次のようにします。CASEWHERE

SELECT element
FROM elementTable
WHERE (date > '2013' AND element NOT IN ('e1', 'e2', 'e3'))
OR (date > '2012' AND date <= '2013' AND element NOT IN ('e2', 'e3'))
OR (date > '2011' AND date <= '2012' AND element NOT IN ('e3'))
OR date <= '2011'
于 2013-06-03T22:46:00.463 に答える
0

これを試して。

SELECT CASE 
   WHEN [DATE] > '2013' AND element NOT IN ('e1', 'e2', 'e3')
   THEN element 
   WHEN date > '2012' AND date <= '2013' AND element NOT IN ('e2', 'e3') --exclude 2 elements
   THEN element 
   WHEN date > '2011' AND date <= '2012' AND element NOT IN ('e3') --exclude 1 element
   THEN element 
   WHEN date <= '2011'
   THEN element -- no elements excluded
   ELSE
    NULL
   END
FROM elementTable
于 2013-06-03T22:40:08.017 に答える