2016-11-20 79 views
0

我有一個查詢:選擇top n查詢 - 我可以插入n以選擇全部?

Select top(@val) from myTable 

其實,這是小巧玲瓏的一個asp.net MVC 5個網站 - 但我認爲其原理是一樣的。

而不是有一個分支選擇全部(刪除頂部(@val)) - 而另一個分支選擇前n個記錄。是否有我可以傳遞給@val的值來選擇全部 - 好像頂部語句不在那裏? (例如傳入0或-1說 - (我試過這些,0返回0行,-1返回語法錯誤))。

我不想只傳遞一個任意的高數字,因爲這可能會導致問題後,不雅,可能效率較低。

在這裏有解決方案還是我堅持傳遞一個高數量或做一個if語句?

我在Google上找不到任何關於此的內容。

+3

可能的重複[select TOP(all)](http://stackoverflow.com/questions/4971206/select-top-all) – alroc

+0

(非常)高的數字有什麼問題? – Shnugo

+0

@Shnugo現在看起來很高的一個非常高的數字可能不會晚於它,它可能不如'頂級所有人'有效,而且它不雅觀。 – niico

回答

0

我不知道你需要什麼,但可能這會爲您的工作需要:

select top (select count(*) from myTable) * from myTable 

但我不知道,如果你將能夠從Dapper產生這樣的查詢...

+0

有趣的想法 - 雖然性能幾乎肯定會在這裏受到打擊 – niico