trapemiyaの日記

hatenablogが新しくなったんで新規一転また2019年1月からちょこちょこ書いてます。C#中心のプログラミングに関するお話です。

OracleのSQLで、ERROR ORA-00907: 右カッコがありません。

久しぶりにOracleSQLを書いていたのだが、以下のSQLで、
ERROR ORA-00907: 右カッコがありません。」なんて謎のエラーが出た。

#下記のSQLは実際のSQLではなく、テーブル名や項目名を変え、かつ簡略化するために手動で書き換えてますので
タイポとかあったらすみません。

select  t.放送日, t.枠CD
from Qシート t
where t.放送日= '20200114' and トリガ = 'Q' and DT <> '' and
    (select トリガ from Qシート t1
        where t1.放送日= t.放送日 and t1.枠CD = t.枠CD and
             t1.イベントSEQ =
                        (    
                            select min(イベントSEQ) from Qシート qt
                                where qt.放送日= t.放送日 and d qt.枠CD = t.枠CD and
                                        qt.イベントSEQ > t.イベントSEQ
                                order by qt.イベントSEQ
                        )
    )
    , '') = 'Q'
order by t.枠CD, t.イベントSEQ

いや、ちゃんとカッコの整合性は取れてます。足りない右カッコなんてありません!
って、悩んだんだけど、結局、副問い合わせのorder by句がいらなかったんだよね。
まぁ、そりゃそうかって感じなんだけど、何でこんなにわかりにくエラーメッセージなんでしょうね。
おかげで30分ぐらいは損をしてしまった・・・