[MYSQL] row가 없을경우에 대한 처리 문의 1 4 11,649

by 이상훈 [MySQL] [2015.09.03 11:43:11]


mysql 에서 coalesce 나 ifnull 을 이용하여 oracle nvl 처럼 해당 컬럼의 값이 null인 경우에 대한 치환방법은 알고있습니다.

궁금한건 select 된 row가 없는경우도 null 에 대한 치환이 가능한지 궁금합니다.

by 아발란체 [2015.09.03 11:57:26]

coalesce나 ifnull은 단일행 함수입니다.

말 그대로 결과가 있을 때 행 하나하나(=단일행)에 대해 적용 할 수 있는 함수입니다.

 

즉 select된 행이 1건도 없다면 단일행 함수를 적용할 부분이 없겠지용.

결과가 없는데, 무엇을 치환해서 보여주나용?

무조건 결과가 있어야, row가 있어야 단일행 함수를 쓸 수 있습니다.

 

다중행(집합) 함수를 이용하여 결과를 얻어, 이것을 단일행 함수로 가공은 가능하나, 이경우 집합 함수를 썼기 때문에 row가 무조건 나옵니다. 이 때 단일행 함수인 null 관련 함수를 쓰면 쓰나마나 한 상황이 될 것 같습니다.


by 이상훈 [2015.09.03 13:05:45]

답변감사합니다 도움이 됬습니다. 


by 마농 [2015.09.03 12:45:11]

널인 데이터를 치환하는 것과
없는 데이터를 만들어 내는 것은 다른 문제입니다.
조회조건에 해당하는 데이터가 없어도 특정 값이 나오게 하려면...
데이터가 단일 건인 경우라면? 단순하게 집계함수(MIN/MAX)로 감싸주면 나옵니다.
집계함수의 특성을 이용한 것이구요.
데이터가 여러 건인 경우엔 집계함수를 사용할 수 없죠.
이 경우엔 아우터 조인을 이용 할 수 있습니다.
조인 조건을 만족하지 않아도 기준테이블은 나오게 되는
아우터 조인의 특징을 이용하는 것이죠.
http://www.gurubee.net/article/45604


by 이상훈 [2015.09.03 13:06:09]

답변감사합니다 도움이 됬습니다. 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입