最近在測試廠商提供的語法


意外發現一個我原先沒發生的情境






整個語法概念如下


Select A.Field1,A.Field2


From A,B 
  
Where A.Field3 = B.Field1


And A.Field4 = ( Select xxxxxxxx From C Order by xxxx )


Order by A.Field1






整段語法,將兩個Select 個別執行,其實並沒有錯誤


但是唯獨合在一起會出錯

在Oracle誤判為 missing right parenthesis(阿明明就有括弧…..)

Google了半天,以這個錯誤訊息為主的文章

大多解釋為其他原因,當然是無解摟~

http://stackoverflow.com/questions/248046/does-oracle-allow-an-order-by-within-an-in-clause

直到參考了這個問題,他點出了Order by這個問題

才豁然開朗,對唷~為何要在子查詢(括弧內的Select)  加上Order by?

聽同事說,這樣的限制在MS SQL也是有的…..

Leave a Reply

Your email address will not be published. Required fields are marked *