2017-10-18 9 views
-2

不足しているキーワードのora:私は次のクエリを実行し、質問のタイトルに示されたエラーを取得しています-00905

select mantas_stg.NY_EGIFTS_TRANS_STG.*, 
CASE WHEN MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_CURR != 'USD' THEN 
CASE WHEN MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_CURR != 'USD' AND MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_LOCAL_CURR != 'USD' THEN 
MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_AMT = MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_AMT * 100 
END 
END 
from mantas_stg.NY_EGIFTS_TRANS_STG; 

誰もが上記のクエリが

MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_AMT = MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_AMT * 100 
+0

左寄せのSQLは読みにくいです。 – jarlh

+0

そのような選択リストに割り当てを割り当てることはできません。 – jarlh

答えて

0

で失敗している理由を教えてもらえます

THEN MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_AMT = MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_AMT * 100

:あなたのネストされた caseで以下の行は、おそらく問題ですあなたは、あなたの目標はあなたが updateステートメントを使用する必要があり、特定のレコードの列の値を更新する場合

許可されていないselect文でMANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_AMTに値を代入しようとしている

+0

mantas_stg.NY_EGIFTS_TRANS_STGを選択します。*、 CASE WHEN MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_CURR!= 'USD' を CASE WHEN MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_ORIG_CURR!= 'USD' AND MANTAS_STG.NY_EGIFTS_TRANS_STG.FUNDS_LOCAL_CURR!= 'USD' を MANTAS_STG。 mantas_stg.NY_EGIFTS_TRANS_STGからNY_EGIFTS_TRANS_STG.FUNDS_ORIG_AMT = 'こんにちは' END END 。 これはうまく動きましたが、私はそれをテストしようとしていました – Keerthi

+0

本当ですか?あなたの質問がそのケースブロックに決して届かなかったので、それは爆破されませんでした。そのクエリの結果セットはどのように見えましたか?私はそれが働いたと信じるのが苦労している。 – tommyO

0

一つはcase式に値を代入しません。私はあなたがこのようなものをしたいと思う:

select s.*, 
     (CASE WHEN s.FUNDS_ORIG_CURR <> 'USD' AND s.FUNDS_LOCAL_CURR <> 'USD' 
      THEN s.FUNDS_ORIG_AMT * 100 
      ELSE s.FUNDS_ORIG_AMT 
     END) as new_funds_orig_amt 
from mantas_stg.NY_EGIFTS_TRANS_STG s; 

インデントとテーブルのエイリアスは、クエリをより読みやすくします。

関連する問題