2-1-6. ORDER BY μ
κ³Όλͺ©2. SQL κΈ°λ³Έκ³Ό νμ©
μ 1μ₯ SQL κΈ°λ³Έ
μ 6μ ORDER BY μ
1. ORDER BY μ λ ¬
ORDER BY μ μ SQL λ¬Έμ₯μΌλ‘ μ‘°νλ λ°μ΄ν°λ€μ λ€μν λͺ©μ μ λ§κ² νΉμ μΉΌλΌμ κΈ°μ€μΌλ‘ μ λ ¬νμ¬ μΆλ ₯νλλ° μ¬μ©νλ€. ORDER BY μ μ μΉΌλΌ(Column)λͺ λμ μ SELECT μ μμ μ¬μ©ν ALIAS λͺ μ΄λ μΉΌλΌ μμλ₯Ό λνλ΄λ μ μλ μ¬μ© κ°λ₯νλ€. κ·Έλ¦¬κ³ λ³λλ‘ μ λ ¬ λ°©μμ μ§μ νμ§ μμΌλ©΄ κΈ°λ³Έμ μΌλ‘ μ€λ¦μ°¨μμ΄ μ μ©λλ©°, SQL λ¬Έμ₯μ μ μΌ λ§μ§λ§μ μμΉνλ€.
ODER BY μ μλ 2κ°μ§μ μ λ ¬ λ°©μμ΄ μλ€.
ASC(Ascending) : μ‘°νν λ°μ΄ν°λ₯Ό μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλ€(κΈ°λ³Έ κ°μ΄λ―λ‘ μλ΅ κ°λ₯).
DESC(Descending) : μ‘°νν λ°μ΄ν°λ₯Ό λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νλ€.
[μμ ] ORDER BY μ μ μλ‘ μ μ ν μ΄λΈμμ μ μλ€μ μ΄λ¦, ν¬μ§μ , λ°±λλ²λ₯Ό μΆλ ₯νλλ° μ¬λ μ΄λ¦μ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νμ¬ μΆλ ₯νλ€.
[μμ ]
[μ€ν κ²°κ³Ό]
νμΉ΄λ₯΄λ
MF
10
ν©μ² λ―Ό
MF
35
ν©μ°μ
FW
16
ν©μΉμ£Ό
DF
98
νμ’ ν
MF
32
νμΈκΈ°
DF
35
νμ±μ
DF
28
ν볡ν
FW
19
νλͺ 보
DF
20
νλν
MF
9
νκ΄μ²
DF
4
νΈμ 리μ€
DF
3
:
:
:
480 κ°μ νμ΄ μ νλμμ΅λλ€.
[μμ ] ORDER BY μ μ μλ‘ μ μ ν μ΄λΈμμ μ μλ€μ μ΄λ¦, ν¬μ§μ , λ°±λλ²λ₯Ό μΆλ ₯νλλ° μ μλ€μ ν¬μ§μ λ΄λ¦Όμ°¨μμΌλ‘ μΆλ ₯νλ€. μΉΌλΌλͺ μ΄ μλ ALIASλ₯Ό μ΄μ©νλ€.
[μμ ]
[μ€ν κ²°κ³Ό] Oracle
μ νλ²
173
μ°¨μκ΄
186
μμ΅μ
174
λ°±μμ²
MF
22
173
μ‘°νμ©
MF
7
192
μ¬λ¦¬λ²
MF
29
190
κΉλ¦¬λ€
MF
26
188
μμ€λ―Ό
MF
33
186
:
:
:
480 κ°μ νμ΄ μ νλμμ΅λλ€.
μ€ν κ²°κ³Όμμ ν¬μ§μ μ μ무 κ²λ μλ κ°λ€μ΄ μλ€. νμ¬ μ μ ν μ΄λΈμμ ν¬μ§μ μΉΌλΌμ NULLμ΄ λ€μ΄ μλλ° ν¬μ§μ μ λ΄λ¦Όμ°¨μμμ NULL κ°μ΄ μμ μΆλ ₯λμλ€λ κ²μ Oracleμ΄ NULL κ°μ κ°μ₯ ν° κ°μΌλ‘ μ·¨κΈνλ€λ κ²μ μ μ μλ€. λ°λ©΄ SQL Serverλ λ°λμ μ λ ¬ μμλ₯Ό κ°μ§λ€. ORDER BY μ μ¬μ© νΉμ§μ μλμ κ°λ€.
κΈ°λ³Έμ μΈ μ λ ¬ μμλ μ€λ¦μ°¨μ(ASC)μ΄λ€.
μ«μν λ°μ΄ν° νμ μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νμ κ²½μ°μ κ°μ₯ μμ κ°λΆν° μΆλ ₯λλ€.
λ μ§ν λ°μ΄ν° νμ μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νμ κ²½μ° λ μ§ κ°μ΄ κ°μ₯ λΉ λ₯Έ κ°μ΄ λ¨Όμ μΆλ ₯λλ€. μλ₯Ό λ€μ΄ '01-JAN-2012'λ '01-SEP-2012'λ³΄λ€ λ¨Όμ μΆλ ₯λλ€.
Oracleμμλ NULL κ°μ κ°μ₯ ν° κ°μΌλ‘ κ°μ£Όνμ¬ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νμ κ²½μ°μλ κ°μ₯ λ§μ§λ§μ, λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νμ κ²½μ°μλ κ°μ₯ λ¨Όμ μμΉνλ€.
λ°λ©΄, SQL Serverμμλ NULL κ°μ κ°μ₯ μμ κ°μΌλ‘ κ°μ£Όνμ¬ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νμ κ²½μ°μλ κ°μ₯ λ¨Όμ , λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νμ κ²½μ°μλ κ°μ₯ λ§μ§λ§μ μμΉνλ€.
[μμ ] ν κ°μ μΉΌλΌμ΄ μλ μ¬λ¬ κ°μ§ μΉΌλΌ(Column)μ κΈ°μ€μΌλ‘ μ λ ¬ν΄λ³Έλ€. λ¨Όμ ν€κ° ν° μμλλ‘, ν€κ° κ°μ κ²½μ° λ°±λλ² μμΌλ‘ ORDER BY μ μ μ μ©νμ¬ SQL λ¬Έμ₯μ μμ±νλλ°, ν€κ° NULLμΈ λ°μ΄ν°λ μ μΈνλ€.
[μμ ]
[μ€ν κ²°κ³Ό]
μλλͺ
GK
21
196
κΆμ ν
GK
1
195
κΉμ
FW
20
194
μ κ²½λ
GK
41
194
μ΄ν
GK
1
192
ν©μ°μ
FW
16
192
λ―ΈνΈλ‘
FW
19
192
κΉλν¬
GK
31
192
μ‘°μμ
GK
44
192
κΉμ°½λ―Ό
GK
1
191
μ°μ±μ©
FW
22
191
μ΅λμ
GK
1
190
μ€μ€
FW
10
190
13 κ°μ νμ΄ μ νλμμ΅λλ€.
μ€ν κ²°κ³Όλ₯Ό 보면 ν€κ° 192cmμΈ μ μκ° 5λͺ μλλ°, ORDER BY μ μμ ν€κ° ν° μμλλ‘ μΆλ ₯νκ³ , ν€κ° κ°μΌλ©΄ λ°±λλ² μμΌλ‘ μ λ ¬νλΌλ 쑰건μ λ°λΌμ λ°±λλ² μμΌλ‘ μ λ ¬λμ΄ μλ κ²μ νμΈν μ μλ€. μΉΌλΌλͺ μ΄λ ALIAS λͺ μ λμ ν΄μ SELECT μ μ μΉΌλΌ μμλ₯Ό μ μλ‘ λ§€ννμ¬ μ¬μ©ν μλ μλ€. SELECT μ μ μΉΌλΌλͺ μ΄ κΈΈκ±°λ μ λ ¬ μ‘°κ±΄μ΄ λ§μ κ²½μ° νΈλ¦¬νκ² μ¬μ©ν μ μμΌλ ν₯ν μ μ§λ³΄μμ±μ΄λ κ°λ μ±μ΄ λ¨μ΄μ§λ―λ‘ κ°λ₯ν μΉΌλΌλͺ μ΄λ ALIAS λͺ μ κΆκ³ νλ€. ORDER BY μ μμ μΉΌλΌλͺ , ALIASλͺ , μΉΌλΌ μμλ₯Ό κ°μ΄ νΌμ©νλ κ²λ κ°λ₯νλ€.
[μμ ] ORDER BY μ μ μλ‘ μ μ ν μ΄λΈμμ μ μλ€μ μ΄λ¦, ν¬μ§μ , λ°±λλ²λ₯Ό μΆλ ₯νλλ° μ μλ€μ λ°±λλ² λ΄λ¦Όμ°¨μ, λ°±λλ²κ° κ°μ κ²½μ° ν¬μ§μ , ν¬μ§μ κΉμ§ κ°μ κ²½μ° μ μλͺ μμλ‘ μΆλ ₯νλ€. BACK_NOκ° NULLμΈ κ²½μ°λ μ μΈνκ³ , μΉΌλΌλͺ μ΄λ ALIASκ° μλ μΉΌλΌ μμλ₯Ό λ§€ννμ¬ μ¬μ©νλ€.
[μμ ]
[μ€ν κ²°κ³Ό]
λλ°
FW
99
μΏ ν€
FW
99
ν©μΉμ£Ό
DF
98
무μ€νν
MF
77
λ€λ³΄
FW
63
λ€μ€
DF
61
κΉμΆ©νΈ
GK
60
μ΅λμ°
GK
60
μ΅μ£ΌνΈ
GK
51
μλμ
DF
49
μ€μ¬μ§
DF
49
:
:
:
12 κ°μ νμ΄ μ νλμμ΅λλ€.
[μμ ] DEPT ν μ΄λΈ μ 보λ₯Ό λΆμλͺ , μ§μ, λΆμλ²νΈ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬ν΄μ μΆλ ₯νλ€. μλμ SQL λ¬Έμ₯μ μΆλ ₯λλ μΉΌλΌ λ μ΄λΈμ λ€λ₯Ό μ μμ§λ§ κ²°κ³Όλ λͺ¨λ κ°λ€.
Case1. μΉΌλΌλͺ μ¬μ© ORDER BY μ μ¬μ©
[μμ ]
[μ€ν κ²°κ³Ό]
ACCOUNTING
NEWYORK
10
OPERATIONS
BOSTON
40
RESEARCH
DALLAS
20
SALES
CHICAGO
30
4 κ°μ νμ΄ μ νλμμ΅λλ€.
Case2. μΉΌλΌλͺ + ALIAS λͺ μ¬μ© ORDER BY μ μ¬μ©
[μμ ]
[μ€ν κ²°κ³Ό]
ACCOUNTING
NEWYORK
10
OPERATIONS
BOSTON
40
RESEARCH
DALLAS
20
SALES
CHICAGO
30
4 κ°μ νμ΄ μ νλμμ΅λλ€.
Case3. μΉΌλΌ μμλ²νΈ + ALIAS λͺ μ¬μ© ORDER BY μ μ¬μ©
[μμ ]
[μ€ν κ²°κ³Ό]
ACCOUNTING
NEWYORK
10
OPERATIONS
BOSTON
40
RESEARCH
DALLAS
20
SALES
CHICAGO
30
4 κ°μ νμ΄ μ νλμμ΅λλ€.
2. SELECT λ¬Έμ₯ μ€ν μμ
GROUP BY μ κ³Ό ORDER BYκ° κ°μ΄ μ¬μ©λ λ SELECT λ¬Έμ₯μ 6κ°μ μ λ‘ κ΅¬μ±μ΄ λκ³ , SELECT λ¬Έμ₯μ μν λ¨κ³λ μλμ κ°λ€.
β λ°μ· λμ ν μ΄λΈμ μ°Έμ‘°νλ€. (FROM)
β‘ λ°μ· λμ λ°μ΄ν°κ° μλ κ²μ μ κ±°νλ€. (WHERE)
β’ νλ€μ μκ·Έλ£Ήν νλ€. (GROUP BY)
β£ κ·Έλ£Ήνλ κ°μ 쑰건μ λ§λ κ²λ§μ μΆλ ₯νλ€. (HAVING)
β€ λ°μ΄ν° κ°μ μΆλ ₯/κ³μ°νλ€. (SELECT)
β₯ λ°μ΄ν°λ₯Ό μ λ ¬νλ€. (ORDER BY)
μ μμλ μ΅ν°λ§μ΄μ κ° SQL λ¬Έμ₯μ SYNTAX, SEMANTIC μλ¬λ₯Ό μ κ²νλ μμμ΄κΈ°λ νλ€. μλ₯Ό λ€λ©΄ FROM μ μ μ μλμ§ μμ ν μ΄λΈμ μΉΌλΌμ WHERE μ , GROUP BY μ , HAVING μ , SELECT μ , ORDER BY μ μμ μ¬μ©νλ©΄ μλ¬κ° λ°μνλ€. κ·Έλ¬λ ORDER BY μ μλ SELECT λͺ©λ‘μ λνλμ§ μμ λ¬Έμν νλͺ©μ΄ ν¬ν¨λ μ μλ€. λ¨, SELECT DISTINCTλ₯Ό μ§μ νκ±°λ SQL λ¬Έμ₯μ GROUP BY μ μ΄ μκ±°λ λλ SELECT λ¬Έμ UNION μ°μ°μκ° μμΌλ©΄ μ΄ μ μκ° SELECT λͺ©λ‘μ νμλμ΄μΌ νλ€. μ΄ λΆλΆμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€κ° λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μ¬λ¦΄ λ ν λ¨μλ‘ λͺ¨λ μΉΌλΌμ κ°μ Έμ€κ² λλ―λ‘, SELECT μ μμ μΌλΆ μΉΌλΌλ§ μ ννλλΌλ ORDER BY μ μμ λ©λͺ¨λ¦¬μ μ¬λΌμ μλ λ€λ₯Έ μΉΌλΌμ λ°μ΄ν°λ₯Ό μ¬μ©ν μ μλ€. SQL λ¬Έμ₯ μ€ν μμλ μ€λΌν΄ μ΅ν°λ§μ΄μ κ° SQL λ¬Έμ₯μ ν΄μνλ λ Όλ¦¬μ μΈ μμμ΄λ―λ‘, SQL λ¬Έμ₯μ΄ μ€μ λ‘ μ€νλλ 물리μ μΈ μμκ° μλμ μ μνκΈ° λ°λλ€. SQL λ¬Έμ₯μ΄ μ€μ μνλλ 물리μ μΈ μμλ μ€νκ³νμ μν΄ μ ν΄μ§λ€.
[μμ ] SELECT μ μ μλ EMP μΉΌλΌμ ORDER BY μ μ μ¬μ©νλ€.
[μμ ]
[μ€ν κ²°κ³Ό]
7902
FORD
7788
SCOTT
7900
JAMES
7499
ALLEN
7521
WARD
7844
TURNER
7654
MARTIN
7934
MILLER
7876
ADAMS
7698
BLAKE
7566
JONES
7782
CLARK
7369
SMITH
7839
KING
14 κ°μ νμ΄ μ νλμμ΅λλ€.
μμ μμ λ₯Ό ν΅ν΄ ORDER BY μ μμ SELECT μ μμ μ μνμ§ μμ μΉΌλΌμ μ¬μ©ν΄λ λ¬Έμ μμμ νμΈν μ μλ€.
[μμ ] μΈλΌμΈ λ·°μ μ μλ SELECT μΉΌλΌμ λ©μΈμΏΌλ¦¬μμ μ¬μ©νλ€.
[μμ ]
14 κ°μ νμ΄ μ νλμμ΅λλ€.
μ€ν κ²°κ³Όμμ 2μ₯μμ λ°°μΈ μΈλΌμΈ λ·°μ SELECT μ μμ μ μν μΉΌλΌμ λ©μΈμΏΌλ¦¬μμλ μ¬μ©ν μ μλ κ²μ νμΈν μ μλ€.
[μμ ] μΈλΌμΈ λ·°μ λ―Έμ μλ μΉΌλΌμ λ©μΈμΏΌλ¦¬μμ μ¬μ©ν΄λ³Έλ€.
[μμ ]
ERROR: "MGR": λΆμ ν©ν μλ³μ
κ·Έλ¬λ μλΈμΏΌλ¦¬μ SELECT μ μμ μ νλμ§ μμ μΉΌλΌλ€μ κ³μ μ μ§λλ κ²μ΄ μλλΌ μλΈμΏΌλ¦¬ λ²μλ₯Ό λ²μ΄λλ©΄ λ μ΄μ μ¬μ©ν μ μκ² λλ€. (μΈλΌμΈ λ·°λ λμΌν¨) GROUP BY μ μμ κ·Έλ£Ήν κΈ°μ€μ μ μνκ² λλ©΄ λ°μ΄ν°λ² μ΄μ€λ μΌλ°μ μΈ SELECT λ¬Έμ₯μ²λΌ FROM μ μ μ μλ ν μ΄λΈμ ꡬ쑰λ₯Ό κ·Έλλ‘ κ°μ§κ³ κ°λ κ²μ΄ μλλΌ, GROUP BY μ μ κ·Έλ£Ήν κΈ°μ€μ μ¬μ©λ μΉΌλΌκ³Ό μ§κ³ ν¨μμ μ¬μ©λ μ μλ μ«μν λ°μ΄ν° μΉΌλΌλ€μ μ§ν©μ μλ‘ λ§λ λ€. GROUP BY μ μ μ¬μ©νκ² λλ©΄ κ·Έλ£Ήν κΈ°μ€μ μ¬μ©λ μΉΌλΌκ³Ό μ§κ³ ν¨μμ μ¬μ©λ μ μλ μ«μν λ°μ΄ν° μΉΌλΌλ€μ μ§ν©μ μλ‘ λ§λλλ°, κ°λ³ λ°μ΄ν°λ νμ μμΌλ―λ‘ μ μ₯νμ§ μλλ€. GROUP BY μ΄ν μν μ μΈ SELECT μ μ΄λ ORDER BY μ μμ κ°λ³ λ°μ΄ν°λ₯Ό μ¬μ©νλ κ²½μ° μλ¬κ° λ°μνλ€. κ²°κ³Όμ μΌλ‘ SELECT μ μμλ κ·Έλ£Ήν κΈ°μ€κ³Ό μ«μ νμ μΉΌλΌμ μ§κ³ ν¨μλ₯Ό μ¬μ©ν μ μμ§λ§, κ·Έλ£Ήν κΈ°μ€ μΈμ λ¬Έμ νμ μΉΌλΌμ μ ν μ μλ€.
[μμ ] GROUP BY μ μ¬μ©μ SELECT μ μ μΌλ° μΉΌλΌμ μ¬μ©ν΄λ³Έλ€.
[μμ ]
ERROR: GROUP BY ννμμ΄ μλλλ€.
[μμ ] GROUP BY μ μ¬μ©μ ORDER BY μ μ μΌλ° μΉΌλΌμ μ¬μ©ν΄λ³Έλ€.
[μμ ]
ERROR: GROUP BY ννμμ΄ μλλλ€.
[μμ ] GROUP BY μ μ¬μ©μ ORDER BY μ μ μ§κ³ μΉΌλΌμ μ¬μ©ν΄λ³Έλ€.
[μμ ]
[μ€ν κ²°κ³Ό]
SELECT SQLμμ GROUP BY μ μ΄ μ¬μ©λμκΈ° λλ¬Έμ SELECT μ μ μ μνμ§ μμ MAX, SUM, COUNT μ§κ³ ν¨μλ ORDER BY μ μμ μ¬μ©ν μ μλ κ²μ μ€ν κ²°κ³Όμμ νμΈν μ μλ€.
Last updated
Was this helpful?