์ค๋ผํด์์ ํ์ด์ง ์ฒ๋ฆฌ ๋ฑ์ ํ ๋ ๋ก์ฐ์ ์๋ฒ์ ๋งค๊ธด ๋ค ์ ๋ ฌ์ ํด์ค์ผ ํฉ๋๋ค.
์ด๋ ROW_NUMBER() ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ์๋ฒ์ ๋งค๊ธธ์ ์์ต๋๋ค.
# ์์ ์ฝ๋
์์ ํ ์ด๋ธ์์ ๋จ์ SELECT ์ฟผ๋ฆฌ๋ฌธํ์ ๋ ์์ ๊ฐ์ ๋ก์ฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ํ ์ด๋ธ์ ๋ก์ฐ๋ฅผ ๋ ์ง(REGIST_DT)๋ก ์ ๋ ฌํ๊ณ ์ถ์ต๋๋ค.
ORDER BY๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฌ ํ ์ ์๊ฒ ์ง๋ง ์ด๋ ๊ฒ๋ง ํ๋ฉด ๋ถ๋ช ํ๊ณ๊ฐ ์กด์ฌํฉ๋๋ค.
ํ์ด์ง ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. 1, 2, .. ํ์ด์ง ๋ฑ์ด ์กด์ฌํ ๊ฒ์ด๊ณ , ํ ํ์ด์ง์๋ 10๊ฐ์ ๋ก์ฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋ก์ฐ๋ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ทฐ์ ๋ฟ๋ ค์ง๋ค๊ณ ํฉ์๋ค.
๋ง์ฝ ORDER BY๋ง ์ฌ์ฉํ๋ค๋ฉด 1ํ์ด์ง์๋ ๋ฌธ์ ์์ด ๋ก์ฐ๊ฐ์ ๋ฟ๋ฆด์ ์๊ฒ ์ง๋ง, ๋ฌธ์ ๋ 2ํ์ด์ง๋ถํฐ ์ ๋๋ค.
2ํ์ด์ง์์ 11๋ฒ์งธ๋ถํฐ 20๋ฒ์งธ๊น์ง์ ๋ก์ฐ(1๋ฒ~10๋ฒ ํ์ด์ง๋ ์ ์ธํ๊ณ )๋ฅผ ๊ฐ์ ธ์์ผ ํ๋๋ฐ ์ด๋ ์ฝ์ง ์์ต๋๋ค.
์ด๋ ๋ฐ๋ก ROW_NUMBER()์ ์ด์ฉํ์ฌ ์กฐํ ์๋ฒ์ ์ ํด์ฃผ๋ ๊ฒ์ ๋๋ค.
SELECT
SEQ
, TITLE
, TO_CHAR(REGIST_DT, 'YYYY-MM-DD HH24:MI') AS REGIST_DT
, ROW_NUMBER() OVER( ORDER BY REGIST_DT DESC) AS rnum
FROM TEMP_TABLE
WHERE 1=1
# ์์ฉ ์์
SELECT
A.*
FROM
(
SELECT
BANNER_SN AS seq
, BANNER_SJ AS TITLE
, TO_CHAR(REGIST_DT, 'YYYY-MM-DD HH24:MI') AS REGIST_DT
, ROW_NUMBER() OVER( ORDER BY REGIST_DT DESC) AS rnum
FROM BANNER
) A
WHERE A.rnum > 4 AND A.rnum < 8
๋จ์ ORDER BY๋ฅผ ํ์ ๊ฒฝ์ฐ ์์ ๊ฐ์ด ํน์ ๋ฒํธ์ ROW๋ฅผ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์๋นํ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค. ๋ฐ๋ผ์ ROW_NUMBER()์ ์ด์ฉํ์ฌ ๋งค๊ธด ์๋ฒ์ ๋ํด ์ ๋ ฌ ํด๋์ผ๋ฉด ์ด๋ ROW ๋ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์ฝ์ต๋๋ค.
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ง๋ฌธ์ ์ธ์ ๋ ํ์ํฉ๋๋ค.
"๋ ๋ฐ๋์ ๋ฐฑ์๋ ์์ด ๋ ๊ฑฐ์ผ"
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Oracle] COUNT() ์ง๊ณํจ์ ์ฌ์ฉํ๊ธฐ (0) | 2021.02.01 |
---|---|
[Oracle] Listener refused the connection with the following error (0) | 2021.01.26 |
[CA] ๋๊ธฐ(Blocking)์ ๋น๋๊ธฐ(Non-Blocking) (2) | 2021.01.24 |
[JS] ์ ๊ท์ ์์ ๋ค (0) | 2021.01.21 |
[JS] ์ ์ด์ฟผ๋ฆฌ id, class, name ์์ฑ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ (0) | 2021.01.21 |