-
Notifications
You must be signed in to change notification settings - Fork 0
/
Note
41 lines (33 loc) · 2.41 KB
/
Note
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
-- 고객 요구사항
-- 여러개의 지점을 관할하는 본부장은 각 지점별 휴가 사용률에 관심이 많다. 휴가 사용률이 너무 낮으면, KPI에 부정적인 영향을 미치기 때문이다
-- HR관리자는
-- 인덱스는 있는 것이 좋다. 트랜젝션까지는 필요가 없다.
-- 가장 중요한 것은 논리적이고 자연스러운 사용자 화면을 전개하자.
-- drop은 틀까지 날려버린다.
-- group by 가 붙으면 그 group 안에서 경쟁한다.
-- FROM -> Where -> Group by -> Having -> Select -> Order by
-- 시험용으로는 구문 볼 때 Select랑 Order by는 일단 고려하지 말고 지워놓고 시작하면 큰 틀이 보인다.
-- Order by 는 그 Order 가 Group by의 칼럼 명인 것이 원칙이고, 그것이 어렵다면 select의 칼럼명이어야함.
-- 즉 뜬금없는 걸로 칼럼 정리하면 안된다.
-- Order by에 집계함수가 칼럼으로 나올 수도 있는 예외가 있는데 이 때는 반드시 group by가 쓰여야한다.
-- Order by (Case when id = 'a....) , AMT desc; 이런 구문도 가능하다. 이 경우엔 case 이하인 경우에만 정렬한다는 뜻
-- Oracle은 null이 높게 나온다. null을 좋아하고 강조하는 듯.
-- (TRUNC) 소수점 n번째 자리까지만 살리고, 반올림이고 뭐고 그런 거 없이 뒷자리는 다 자르고 날려버림. turnc. 마치 도끼처럼.
select trunc(3.467777, 2) from dual; -- 3.46
-- (ROUND) 소수점 n번째 자리에서 반올림. 2라고 되어있으면, 3번째 자리가 기준이 되어 결정함.
select round(3.367777, 2) from dual; -- 3.37
-- 3이 아니라 7이 기준점이므로
select round(3.337777, 2) from dual; -- 3.34
select round(3.363333, 2) from dual; -- 3.36
-- floor와 ceil은 소수점 같은 걸 따로 따지는 것이 아니라...그냥 trunc처럼 그냥 날려버린느 것임. 무조건.
select floor(3.4677) from dual; -- 3
select floor(3.9777) from dual; -- 3
select ceil(3.277) from dual; -- 4
select ceil(3.977) from dual; -- 4
-- NVL은 오라클에서만 쓰이는 구문임. ANSI에서는 ISNULL을 씀
-- WHERE는 오라클 뿐만 아니라 ANSI에서도 쓰이는 표준문법임.
select coalesce('ab', 'cd') from dual; -- 'ab'
select coalesce('ab', 'cd', 'ef') from dual; -- 'ab'
select nullif('ab', 'cd') from dual; -- 'ab'
select nullif('ab', 'ab') from dual; -- <null>
select decode('ab', 'cd', 'ef') from dual; -- <NULL>