2012-10-29 258 views
1

子查詢的rownum notworking我有一個很長的查詢有多個連接,與甲骨文

Select * 
    from (Select firstName, lastname, designation 
      from NameTable nameT 
      left outer join ProfileTable profileT on nameT.id = profileT.id 
      where firstName like ("S%") order by firstName ASC 
     ) 
    where rownum < 25 

上述查詢工作正常,如果我改變名稱搜索到「SA」,然後查詢得到執行掛。

如果我將rownum更改爲21「sa」,查詢也會變得很快。

我們是否需要爲表格添加任何索引,或者對此問題有任何想法。

先謝謝了!

+0

長的查詢?這個查詢非常簡短!你的意思是長期運行嗎?你有任何這些表上的索引嗎?特別是在NameTable.firstName上? –

+0

對於sa查詢和S查詢有多少結果?此外,您的查詢似乎不完整 - 我希望一個'join'有一個'on'子句。 –

+0

sa - 10000個記錄的結果和15000條記錄的結果。 – Santhosh

回答

0

爲什麼你想要去的子查詢在這裏,我想它會幫助你

Select firstName, lastname, designation 
    from NameTable nameT left outer join ProfileTable profileT 
    on nameT.column=profileT.column  
    where firstName like ("S%") and rownum < 25 
+0

@NicholasKrasnov問題本身沒有提到 – SRIRAM

+0

如果OP想要給子查詢添加'order by',那麼就需要子查詢。 –

+0

很可能,他們正在使用子查詢,因爲他們想要分頁*排序*結果集。在子查詢中應用排序,並在外部查詢中檢索前24行。 –