2016-12-10 6 views
1

以下のクエリでエラーが発生します。誰かが提案することができます。入力が一致していないため、位相がTHENであることが予想されます

select Defects_1.id, 
case when Defects_1.status Not Like '4-Closed%' then (CURRENTDATE() - Defects_1.creation_time) As Defect_Age end 
case when Defects_1.status Like '4-Closed%' then Defects_1.user_11as Defect_Age end 
from Defects_1 
Order By Defects_1.id 

エラー:

不一致入力 'ない'、2行目の位相PARSERにTHENクエリ

+0

これは、MSSQLのようなものであれば、あなたは 'CASE..WHEN..THEN..END'文の外で、あなたのフィールドエイリアスを配置する必要があります。 'Defects_1.status Not Like '4-Closed%' then(CURRENTDATE() - Defects_1.creation_time)end As Defect_Age'と ' If If Defects_1.status '4-Closed%'のように、Defects_1.user_11はDefect_Ageとして終了します。 '。また、3行目の 'Defects_1.user_11'と' Defect_Age'の間にもスペースがありません。これは問題になりそうです。 – 3N1GM4

答えて

0

ため 列27を期待して、私はあなたがのようないくつかの列を持っていると仮定していますDefects_1.closing_timeこれはあなたが意図したものです -

select  Defects_1.id 

      , case 
        when Defects_1.status Not Like '4-Closed%' 
        then CURRENTDATE() 
        else Defects_1.closing_time 
       end 
      - Defects_1.creation_time As Defect_Age 

      ,case 

from  Defects_1 

Order By Defects_1.id 
0

私はあなたが単一case文をつもりだと思う:

select Defects_1.id, 
     (case when Defects_1.status Not Like '4-Closed%' 
      then (CURRENTDATE() - Defects_1.creation_time) 
      when Defects_1.status Like '4-Closed%' 
      then Defects_1.user_11 
     end) as Defect_Age 
from Defects_1 
Order By Defects_1.id 
+0

私の元のクエリはDQLにありました。私はそれをSQLに変換しましたが、ORA-00936に式エラーが見つかりません。 SQLクエリはBUG.BG_BUG_ID、 (ケースBUG.BG_STATUSないよう '4-休館%' その後、(DATE()を選択 ある - BUG.BG_DETECTION_DATE) BUG.BG_STATUSと同様に '4-休館%' を Defect_Age として、その後BUG.BG_USER_11 終了)BUG.BG_BUG_ID – selenium

+0

ことでBUG 注文Oracleを使用している場合は、おそらくあなたの代わりに 'CURRENTDATE()'の 'CURRENT_DATE'または' sysdate'を意図するから。 –

関連する問題