고정형 문자열로, 해당 크기보다 작은 문자열이 입력되었을 경우, 띄어쓰기(스페이스바)로 채운다.
Oracle에서는 공백은 NULL과 같고, SQL Server에서는 공백은 그냥 하나의 공백이다.
DB에 공백('')입력하고 조회할때
Oracle -> WHERE ~ IS NULL 조회됨, WHERE ~ IS '' 조회안됨
SQL Server -> WHERE ~ IS NULLL 조회안됨, WHERE ~ IS '' 조회됨
LENGTH를 하였을때, Oracle은 공란까지 길이에 포함한다. 반면 SQL Server는 공란은 길이에 포함하지 않는다.
LENGTH에 대한 개념만 반대이고, 나머지 NULL에 대한 개념은 그대로 유지된다 보면 된다.
Oracle의 경우엔 공백은 NULL과 같다. 따라서 NULL로 출력된다.
SQL Server의 경우엔 공백은 NULL이 아니다. 다만 길이는 없으므로 0으로 출력된다.
※ 참고
group by하였는데 그룹화대상이 NULL일 경우에도 group by 진행한다.
SUM(매출) OVER(PARTITION BY 매출월, ORDER BY 매출월 RANGE UNBOUNDED PRECEDING AND CURRENT ROW) AS 누적매출
SELECT ~~~, MAX(A.매출) AS 매출 SUM(B.매출) AS 누적매출
FROM 매출집계 A, 매출집계 B
WHERE A.매출월 >= B.매출월
GROUP BY A.매출월
ORDER BY A.매출월
DDL -> AUTO COMMIT!
Oracle, SQL Server의 공백처리관련
natural join 관련 예제 - https://ju-hy.tistory.com/102
partition by 후 특정 기준에 대한 누적값 구하기