2016-11-20 1 views
0

は、私は、クエリがあります。上位n個のクエリを選択する - すべてを選択するにはどうすればよいですか?

Select top(@val) from myTable 

実際には、これはDapperのであるasp.net MVC 5サイト内を - しかし、私は、原理は同じであると仮定します。

1つのブランチですべてを選択(トップ(@val)を削除)し、もう1つのブランチでトップnレコードを選択するのではなく、 @valに渡すことができる価値はありますか?トップのステートメントがなかったかのように、すべてを選択するだけですか? (例えば、0または-1を渡すと - (これらを試しましたが、0は0の行を返し、-1は構文エラーを返します))。

これは、後で問題を引き起こす可能性があり、控えめで、効率が低い可能性があるため、任意の高い数値を渡すだけではなりません。

ここに解決策はありますか、高い数値で渡すか、if文を使用していますか?

これについてGoogleでは何も見つかりません。

+3

...

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

しかし、あなたはDapperから、このようなクエリを生成することができるようになります場合、私は見当がつかない可能な重複の[選択トップ(すべて)](http://stackoverflow.com/questions/4971206/select-top-all) – alroc

+0

非常に高い数字は何が問題なのですか? – Shnugo

+0

@ Shnugo今は十分に高いと思われる非常に高い数値は、後になっていない可能性があります。これは、「トップオール」より効率が低い可能性があります。 – niico

答えて

0

私は何が必要かわからないが、これはあなたのニーズに合わせて動作することがあります

+0

興味深いアイデア - パフォーマンスはほぼ確実にここに当てはまりますが – niico

関連する問題