여러 열: 여러 열을 지정하면, 첫 번째 열로 정렬한 후 같은 값이 있을 때 두 번째 열로 정렬합니다.
NULL 처리: 데이터베이스마다 NULL 값의 정렬 순서가 다를 수 있습니다. 예를 들어, Oracle은 기본적으로 NULL 값을 최상단에 정렬하고, MySQL은 기본적으로 최하단에 정렬합니다. 데이터베이스에 따라 NULL 값을 처리하는 방법이 다를 수 있으므로 필요에 따라 NULLS FIRST 또는 NULLS LAST 키워드를 사용할 수 있습니다.
성능: 대량의 데이터에 대해 정렬 작업은 많은 리소스를 소모할 수 있으므로 인덱스 설정 등 성능을 고려해야 합니다.
- output을 보면, 특정 이름들 중에서 이름 첫글자의 오름차순으로 사원 명을 뽑으라는 것.
++아니 ㅈㄹ... sample대로 뽑으려고
SELECT DISTINCT name
FROM Employee
WHERE name IN ('Angela', 'Bonnie', 'Frank', 'Joe', 'Kimberly', 'Lisa', 'Michael', 'Patrick', 'Rose', 'Todd')
ORDER BY name;
이렇게 했는데, 오류가 뜨길래 뭐지 했는데 샘플은 그냥 샘플이고 이름만 오름차순으로 뽑으면 되는거였던...
SELECT name
FROM Employee
ORDER BY name
2. Employee Salaries
동일한 테이블 Employee에서 급여가 2000달러를 넘고,근무개월수가 10개월 이하인 name 추출하기.
추출된 이름은 사원번호의 오름차순으로 배열.
SELECT name
FROM Employee
WHERE salary >2000 AND months < 10
ORDER BY employee_id
3. Higher Than 75 Marks
STUDENTS 테이블에서 Marks 점수가 75점보다 높은 학생 뽑기.
결과는 각 이름의 마지막 세 글자를 기준으로 오름차순으로 정렬
만약 두 명 이상의 학생 이름이 같은 마지막 세 글자를 가진 경우, ID를 기준으로 오름차순으로 정렬
SELECT name
FROM STUDENTS
WHERE Marks > 75
ORDER BY RIGHT(Name,3), ID
// 마지막(오른쪽) 3글자로 asc정렬하고서 id도 오름차순으로 정렬
4. Weather Observation Station 15
- STATION 테이블에서 137.2345보다 작은 LAT_N 중에서 가장 큰 값을 뽑고
- 거기에 상응하는 LONG_W를 뽑은뒤에
- LONG_W를 소수점 4번째 자리까지 반올림해서 출력.
#방법 1.
SELECT ROUND(LONG_W, 4)
FROM STATION
WHERE LAT_N = (SELECT MAX(LAT_N) FROM STATION WHERE LAT_N < 137.2345);
#방법2.
SELECT ROUND(LONG_W, 4)
FROM STATION
WHERE LAT_N < 137.2345
ORDER BY LAT_N DESC
LIMIT 1;