COALESCE

2024. 8. 8. 20:42·SQL 정리

COALESCE 함수는 SQL에서 매우 유용한 함수로, 여러 값 중에서 NULL이 아닌 첫 번째 값을 반환하는 데 사용됩니다. 기본적으로 COALESCE는 여러 인수를 받아, 가장 먼저 NULL이 아닌 값을 찾을 때까지 인수들을 순차적으로 검사합니다.

기본 구문

 
COALESCE(expression1, expression2, ..., expressionN)
  • expression1, expression2, ..., expressionN: 검사할 값들입니다. 이들 중 첫 번째로 NULL이 아닌 값을 반환합니다.

예제

  1. 단일 값 처리:
    • 이 쿼리는 'Hello'를 반환합니다. 왜냐하면 NULL이 아닌 첫 번째 값이 'Hello'이기 때문입니다.
SELECT COALESCE(NULL, NULL, 'Hello', 'World') AS result;
  1. 컬럼 값 처리:
    • 이 쿼리는 phone_number 컬럼이 NULL일 경우 'No phone number provided'라는 문자열을 반환합니다.
SELECT COALESCE(phone_number, 'No phone number provided') AS contact_phone FROM contacts;

 

2. 계산된 값 처리:

  • total_sales가 NULL일 경우 0을 반환하여, NULL 대신 0으로 대체합니다.
SELECT
    COALESCE(total_sales, 0) AS sales
FROM
    sales_data;

사용 시기

  • NULL 처리: 데이터베이스에서 NULL 값이 있을 수 있는 상황에서 NULL 대신 기본값을 제공하고 싶을 때 사용합니다.
  • 데이터 변환: 여러 값 중 NULL이 아닌 첫 번째 값을 선택하고자 할 때 유용합니다.
  • 쿼리 결과: 결과 셋에서 NULL 값을 처리하고 결과의 가독성을 높이고 싶을 때 사용됩니다.

COALESCE와 ISNULL 비교

  • ISNULL(): SQL Server에서 사용되는 함수로, 두 개의 인수 중 첫 번째 값이 NULL일 경우 두 번째 값을 반환합니다. ISNULL(expression, replacement)과 같이 사용됩니다.
SELECT ISNULL(phone_number, 'No phone number provided') AS contact_phone FROM contacts;
  • COALESCE(): 여러 인수를 지원하며, 모든 인수를 순차적으로 검사하여 첫 번째 NULL이 아닌 값을 반환합니다. SQL 표준 함수로, 다양한 데이터베이스 시스템에서 지원됩니다.
SELECT COALESCE(phone_number, alternate_phone, 'No phone number provided') AS contact_phone FROM contacts;

 

이처럼 COALESCE는 유연하게 여러 인수를 처리할 수 있으며, NULL 값을 적절히 대체하여 데이터의 가독성과 처리성을 높이는 데 도움이 됩니다.

반응형

'SQL 정리' 카테고리의 다른 글

ubuntu서버에 있는 MySQL데이터 dump후 로컬에 저장하기  (0) 2025.01.16
3개 이상 쿼리를 조회할때  (0) 2024.08.08
시간대를 나누는 쿼리  (0) 2024.08.08
오프라인/온라인 판매 데이터 통합하기(IFNULL, UNION)  (0) 2024.08.06
저자 별 카테고리 별 매출액 집계하기  (0) 2024.08.02
'SQL 정리' 카테고리의 다른 글
  • ubuntu서버에 있는 MySQL데이터 dump후 로컬에 저장하기
  • 3개 이상 쿼리를 조회할때
  • 시간대를 나누는 쿼리
  • 오프라인/온라인 판매 데이터 통합하기(IFNULL, UNION)
wanduek
wanduek
차근차근 쌓아가는 지식
  • wanduek
    완득님의 블로그
    wanduek
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • Onboarding (0)
      • 아티클 (0)
      • SQL 정리 (20)
      • 웹개발 기초정리(프엔) (9)
      • (Java)코테연습 (27)
      • 미니 프로젝트 (9)
        • 자기소개 웹페이지 (5)
        • 수강생 관리 프로그램(Java) (4)
      • GitHub 오류 및 명령어 정리 (7)
      • Java 문법정리 (Array부터) (17)
      • Java로 이용한 기능 (2)
      • Web지식 (12)
        • web3 (6)
        • 네트워크 (6)
      • 인텔리제이 오류 대처 방법 (1)
      • Computer Science (7)
      • Spring (38)
        • 미니 프로젝트(배달) (2)
        • Spring 트러블 슈팅 (3)
        • QueryDSL, JPQL (3)
        • 미니 프로젝트(뉴스피드) (5)
        • 미니 프로젝트(Trello) (2)
      • 개발자 밋업 (1)
      • Docker (2)
      • Redis (1)
      • AWS (6)
        • AWS 트러블 슈팅 (2)
      • Jmeter (2)
      • 우리 지금 만나 (12)
      • Kafka (1)
      • RabbitMQ (2)
        • 트러블 슈팅 (1)
      • STOMP (2)
      • WebSocket (3)
        • 트러블 슈팅 (2)
      • Node.js (2)
      • Elastic Search (2)
      • Nginx (1)
      • 퍼블엘 (2)
      • openresty (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    fetch
    jquery
    groupby
    백앤드개발자 #초심자
    git
    where
    github
    json
    ㅏㄷ
    SQL
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
wanduek
COALESCE
상단으로

티스토리툴바