コードはこんな感じ。
-- 分析関数で取得
SELECT * FROM (
SELECT *, Row_Number() OVER(ORDER BY p_key DESC) as RNK FROM tblTEST) T1
WHERE RNK=2
--ガッツで取得
SELECT top 1 * FROM tblTEST t1
WHERE t1.p_key<(SELECT MAX(p_key) FROM tblTEST)
ORDER BY p_key DESC
SELECT * FROM (
SELECT *, Row_Number() OVER(ORDER BY p_key DESC) as RNK FROM tblTEST) T1
WHERE RNK=2
--ガッツで取得
SELECT top 1 * FROM tblTEST t1
WHERE t1.p_key<(SELECT MAX(p_key) FROM tblTEST)
ORDER BY p_key DESC
とりあえず、両方とも2番目が取れるものの、ガッツで取得のほうは、可読性も悪く、TotalSubtreeCostの結果もこのようになりました。
- 集計関数→0.003934295
- ガッツで取得→0.00657168
集計関数。。。覚えると便利そうですね。
0 件のコメント:
コメントを投稿