2017-08-04 6 views
0

以下のコードは正常に動作します。条件を選択すると複数のケースを選択するとエラーが発生する

(SELECT  (CASE 
    WHEN (PA.ACTOR_KIND = 5) THEN 
    (SELECT POP.KDS_TEKLIF_TUT_TL) 
     ELSE 0 END) AS Expr1) AS YKF_CUSTOMER_LIMIT 

ただし、別の「条件」を追加するとエラーになります。

(SELECT  (CASE 
    WHEN (PA.ACTOR_KIND = 5) THEN 
    (SELECT POP.KDS_TEKLIF_TUT_TL) 
    WHEN (PA.ACTOR_KIND = 10) THEN 
    (SELECT POP.KDS_ALICI_LIM_TL) 
     ELSE 0 END) AS Expr1) AS YKF_CUSTOMER_LIMIT 

は、それは私にすべての論理だではなく、SQL

**編集これはタイプミス、エラーによって引き起こされたため、これらの文には何の問題もありません。

+0

エラーは何ですか?また、使用しているデータベースにタグを付けます。 –

+0

また、判読可能な形式を使用してください。それだけでエラーを表示するかもしれません(例:paranthesesの不足、 'case' /' end'の不一致など) – HoneyBadger

答えて

2

これはあなたの問題を修正するかどうかは知りませんが、WHEN句のためSELECTを必要としません:

SELECT (CASE WHEN PA.ACTOR_KIND = 5 
      THEN POP.KDS_TEKLIF_TUT_TL 
      WHEN PA.ACTOR_KIND = 10 
      THEN POP.KDS_ALICI_LIM_TL 
      ELSE 0 
     END) AS YKF_CUSTOMER_LIMIT 

あなたのようにサブクエリで表現に名前を付ける必要はありません外側のクエリと同様です一つの名前で十分です。 (ただし、エラーは発生しません)

+0

Whiletはエラーを起こさなかった、式とselect文を必要とせず、コードを変更して削除しました不要な選択とexpr。 – erhan355

+0

@ erhan355。 。 。そうですか。それはエラーではなく、単なる不要です。 –

+0

私はあなたの答えを受け入れて、この質問に対する他の回答やベストプラクティスを示す努力を避けます。 – erhan355

関連する問題