我試圖限制當我運行我的查詢時將顯示的行數。 當我在SQL Developer中運行下面的代碼,它返回缺少右括號錯誤..Oracle sql缺少右括號
select * from
(select row_number() over (order by rescode) rnum, a.* from
(
SELECT *
FROM trans z
LEFT JOIN emails a
ON z.email1_hist_id=a.email_id
or z.email2_hist_id=a.email_id
) a
) where rnum between 1 and 50;
我試圖運行內部查詢:
SELECT *
FROM trans z
LEFT JOIN emails a
ON z.email1_hist_id=a.email_id
or z.email2_hist_id=a.email_id
,它工作正常。另一方面,我試圖刪除我的查詢的OR部分,幷包含限制行查詢,並返回我指定的行數。
我的代碼究竟出了什麼問題?
我會嘗試以'select row_number()'開始並以')a'結尾的部分。無論如何,這個錯誤似乎很愚蠢。這可能是您的查詢的某些元素的特定安排導致錯誤。我個人會嘗試這些(一個接一個或組合):在'row_number()...之前放置'a。*';在另一行上留下'(''select row_number()...'前面的'(')';將''where'rnum ...'放在單獨的行上;相反,將最內層選擇的SELECT *放在同一行上(';';同樣合併')a'和')的行,其中rnum ...'。 – 2011-03-18 06:45:32