私は、SQLクエリを持っている:sql result-setの行の位置を特定する方法は?
select id, name from table order by name
結果は次のようになります。指定されたidの
52 arnold
33 berta
34 chris
47 doris
52 emil
= 47がどのように私は、結果セット内の位置を決定することができますか? 結果ため4でなければならない:
52 arnold
33 berta
34 chris
は(47、ドリス)の前であり、ID = 41は、結果セット内の4位にあります。
これをSQLで行う方法は? HQLではどうですか? ページネーションの例では、2つのステートメントを実行する必要がありますか、それともid = 47の行を含むウィンドウを正確に取得できるソリューションがありますか? SQL 2005を想定し
PostgreSQLとjavaの
どのようにネクタイを扱いますか? – brad
私はそれがあなたがネクタイを壊すために使いたいものに依存していると思います。追加のcrieriaをサブクエリに追加して、 'rowpos'計算をさらに区別して結び目が生成されないようにするか、外部クエリに追加の句を追加して結合を解除することができます。 –
あなたのDBがROW_NUMBERを提供していても、このケースはROW_NUMBERより速いのですか?私はこの方法がO(n)対O(n * log(n))(行番号の取得)であると仮定します – Flati