[解決済み] SQL ServerにおけるLIMIT 10...20
2022-03-02 02:32:17
質問
私は、次のようなことをしようとしています。
SELECT * FROM table LIMIT 10,20
または
SELECT * FROM table LIMIT 10 OFFSET 10
が、SQL Server を使って
唯一の 私が見つけた解決策 はやりすぎのような気がします。
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM sys.databases
) a WHERE row > 5 and row <= 10
また 発見 :
SELECT TOP 10 * FROM stuff;
...が、開始時の制限を指定できないので、やりたいこととは違う。
他に方法はありますか?
また、ちょっと気になったのですが、SQL Server はなぜ
LIMIT
関数かそれに類するものを教えてください。意地悪を言うつもりはないのですが、それは本当にDBMSに必要なもののように思えるのですが.もしそうだとしたら、無知でごめんなさい 私は過去5年間、MySQLとSQL+で作業してきましたので...
どのように解決するのですか?
その
LIMIT
節は標準SQLの一部ではありません。 MySQL、PostgreSQL、SQLite では、SQL のベンダ拡張としてサポートされています。
他のブランドのデータベースでも、同様の機能(例えば
TOP
の場合)、これらは常に同じように動作するわけではありません。
を使うのは難しい。
TOP
を模倣するために Microsoft SQL Server で
LIMIT
節があります。 どうしてもうまくいかないケースがあります。
あなたが示した解決策では
ROW_NUMBER()
は、Microsoft SQL Server 2005 以降で利用可能です。 これは、クエリの一部としてのみ動作する(現時点での)最良の解決策です。
もう一つの解決策は
TOP
を取得するために、最初の
カウント
+
オフセット
の行をシークし、API を使って最初の
オフセット
行になります。
こちらもご覧ください。
関連
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] ORA-00997: LONG データタイプの不正使用に対する回避策
-
[解決済み] SQLサーバーで文字列をsmalldatetimeデータ型に変換する際、変換に失敗しました(静的値を除く)。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しない
-
[解決済み】ストアドプロシージャーのエラー ORA-06550
-
[解決済み】警告。Aqua Data Studioの集約や他のSET操作でNull値が排除される。
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み】ORA-01791: SELECTされた式ではない
-
[解決済み] リンクされたサーバーの NULL に対して OLE DB プロバイダー Microsoft.Jet.OLEDB.4.0 のインスタンスを作成できません。
-
[解決済み] Oracle(LiveSQL)のSQL [重複]について
-
[解決済み] varchar 値の変換で int カラムがオーバーフローしました。
-
[解決済み] SQLです。最初の出現箇所のみを返す
-
[解決済み] SQL ServerでLIMITを実装するには?重複