안녕하세요!
오늘은 SQL 코딩테스트 문제를 들고왔습니다.
일단 저는 이 문제를 보고, "replace"를 활용하여 문제를 풀으면 되겠는데?? 생각했습니다ㅎㅎ
당연히 통과할 줄 알았던 테스트였지만,,
결과가 이상하게 나오더라구요..!
그래서 replace에 대해 다시 찾아 본 결과,
replace는 바꿀 값이 아무것도 없으면 "Null"을 치환한다고 합니다.
생각해보니깐 문자열을 바꿔주는 함수인데, 애초에 아무것도 없는(null) 값을 바꾸려고 시도했던 부분이 스스로 너무 부끄러웠습니다ㅎㅎ
이제! Null 값을 치환해주는 방법에 대해 알아보겠습니다.
1. IFNULL 함수
- 컬럼의 데이터가 null인 경우 대체 값으로 치환할 수 있습니다.(null값을 치환하는 가장 간단한 방법!!)
- 사용 방법
IFNULL(컬럼명, 'null을 대체할 값')
2. CASE 문 (제가 작성하였던 설명을 캡처해 왔습니다.)
case문을 사용하여 null 값 변환하는 방법은
3. COALESCE 함수
- 매개변수로 전달된 여러 개의 값 중에서 첫 번째로 null이 아닌 값을 반환하는 함수입니다.
- IFNULL이랑 비슷하지만, 차이점이 coalesce함수는 여러개의 값을 넣을 수 있습니다.
- 즉, null을 사용하지 않기 위해 사용하는 함수라고 생각하면 쉬울 것 같습니다.
- 사용 방법
COALESCE(컬럼명1, 컬럼명2, 컬럼명3, ..., 'null의 대체값')
오늘의 요약
replace함수는 값이 있는 문자열 반환해주는 함수이다.
NULL값을 치환하고 싶으면 "IFNULL"..!!
'TIL(Today I Learned)' 카테고리의 다른 글
[MYSQL] DATETIME에서 DATE로 형 변환 (DATE_FORMAT) (0) | 2024.08.12 |
---|---|
[Java/코딩테스트] 음양 더하기 ( + 지역변수에 대하여) (0) | 2024.08.09 |
[Java/코딩테스트] 서울에서 김서방 찾기 (0) | 2024.08.07 |
[Java/코딩테스트] 콜라츠 추측 (0) | 2024.08.06 |
[Java/코딩테스트] 하샤드 수 판별 (0) | 2024.08.05 |