PostgresQL String Concatenation 엔 뭔가 다른 것이 있다.
이 다른 것을 알지 못하면 큰 장애를 유발 할 수 있다.
PostgresQL을 많이 다루어 보지 못해서 생긴 이슈일수도 있다.
꼭 아래 내용을 숙지할 것.
String concatenation 2 가지 방법
1. || Operator
||( vertical bar ) 2개를 연속하여 사용하는 방법이며 이것은 NULL 을 인지한다.
따라서 NULL이 들어오면 모든 문자는 NULL이 된다.
select 'A'||NULL; --> NULL Return
Ex) Oracle의 경우, select 'A'||NULL from dual --> 'A' Return 됨.
2. concat Function
concat Function은 NULL을 무시한다.
select concat('abc', NULL, 'def'); --> 'abcdef' 즉, NULL을 무시하여 concat('abc','def') 와 같은 결과임.
참조 URL) http://www.postgresqltutorial.com/postgresql-concat-function/
PostgresQL 에서의 Empty String
소위 말하는 '' 이다.( Single Quatation 2개를 연속해서 씀.)
PostgresQL에서 ''은 NULL 이 아니고 말 그대로 "빈 문자열" 자체의 의미이다.
하지만 다른 DB에서는 NULL 로 인지한다.
따라서 select * from aaa where col1 is null 과 where col1 = '' 은 다르다.
그리고 not null 컬럼에 ''이 들어갈수 있다. 육안으로 보기엔 null처럼 보이니 주의해야 한다.