Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- HTTP상태코드
- HTTP
- application.yml
- spring
- 쿼리
- Static
- SQL
- 어노테이션
- 스프링시큐리티
- JWT
- Java
- MariaDB
- 상태코드
- SpringSecurity
- Swagger
- 오버라이딩
- 스프링
- 시큐리티
- API
- 의존성주입
- RDBMS
- JPA
- 스웨거
- 스프링오류
- 자바
- server
- 서버
- 인텔리제이오류
- restAPI
- 스프링RESTAPI
Archives
- Today
- Total
취뽀몽
[SQL] NULL 처리 방법 본문
젠킨스 배치를 돌렸는데 Unstable 이라고 뜨길래 젠킨스 로그를 확인해봤다.
다름이 아니라,,,
Column ~ cannot be null
이라는 SQL 오류가 발생하면서, 해당 오류가 발생한 이후로 아무런 데이터를 가져오지 못 했다...
원래 null이 들어오는 컬럼이 아닌데, 이번에 리뉴얼 되면서 뭔가 변경된 것 같았다.
null이어도 값이 들어올 수 있게끔 null 처리를 해주기로 했다.
null 처리 방법은 DBMS 마다 다르므로, 이 점 유의해야한다!
1. MySQL - IFNULL
해당 컬럼의 값이 null일 때 다른 값으로 출력할 수 있도록 하는 함수이다.
SELECT INNULL(age, "null일 때의 대체값")
FROM table_name;
2. Oracle - NVL(표현식1, 표현식2) or ISNULL(표현식1, 표현식2)
표현식 1의 값이 null이면 표현식2의 값을 출력한다.
SELECT NVL(표현식1, 표현식2)
FROM table_name;
SELECT ISNULL(표현식1, 표현식2)
FROM table_name;
3. COALESCE
모든 DBMS에서 지원하며 null을 대체하거나 null이 아닌 첫번째 값을 가져올 때 사용한다.
SELECT COALESCE(컬럼 1, null일 경우의 대체값)
FROM table_name;
SELECT COALESCE(컬럼 1, 컬럼 2, 컬럼 3, 컬럼 4)
FROM table_name;
첫번째 예시의 경우 컬럼 1이 null이면 'null일 경우의 대체값'이 출력된다.
두번째 예시의 경우 컬럼 1이 null이면 컬럼 2가 출력되고, 컬럼 2도 null이면 컬럼 3이 출력되는 방식으로 출력된다.
모든 컬럼이 null이라면 최종적으로 null이 출력된다.
4. DBMS별 null 체크 함수
DATABASE | FUNCTION |
Oracle | NVL() |
MySQL | IF() |
MS SQL | ISNULL() |
Server | ISNULL() |
DB2 | IFNULL(), NVL() |
SQLite | IFNULL() |
PostgreSQL | NULLIF() |
'SQL' 카테고리의 다른 글
[SQL] NOT IN 과 NOT EXISTS의 차이 (0) | 2024.07.05 |
---|---|
[SQL] Table Lock 확인 및 해제하기 (0) | 2024.06.20 |
[SQL] ANSI SQL (0) | 2024.02.28 |
[SQL] 샤딩(Sharding) (0) | 2024.02.05 |
[SQL] 데이터 무결성 (0) | 2023.12.26 |