【Oracle】疑似列の利用
実際に存在しない列を「疑似列」と言い、「ROWID」はその代表的な存在です
WHERE句に「ROWID」を指定した場合、表を走査する必要がない為、最も早く検索が行われます
他にも「ROWNUM」疑似列は、SELECT結果の各行に対して振られる番号です
重複データを削除する(ROWIDの使用例)
DELETE FROM 表1 WHERE ROWID IN (SELECT MAX(ROWID) FROM 表1 GROUP BY 列1 HAVING COUNT(*) > 1);
上位レコードを取得する(ROWNUMの使用例)
下記の例は、上位5件を取得します
SELECT * FROM 表1 WHERE 条件 AND ROWNUM <= 5;
並び順の上位が必要な場合は「ORDER BY」のSELECTを副呼び出しとします
SELECT * FROM (SELECT * FROM 表1 ORDER BY 列1)
WHERE ROWNUM <= 1;