Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
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 more
Archives
Today
Total
관리 메뉴

개발의변화

MySQL(IFNULL,WITH) 본문

데이터베이스

MySQL(IFNULL,WITH)

refindmySapporo 2023. 9. 27. 13:44
반응형

IFNULL

SELECT IFNULL(COLUMN명, "NUll인 경우 대체 값") FROM 테이블명


# Null 처리는 IF 함수와 IS NULL조건으로도 가능함
SELECT IF(IS NULL(NAME), "No name", NAME) as NAME

 

 

WITH

 

WITH 가상테이블명 AS
(
    SELECT 칼럼
    FROM 테이블명
    WHERE 조건
)

 

이거 두 개를 활용해서 SQL문제를 풀어야 했다

https://school.programmers.co.kr/learn/courses/30/lessons/157340

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

WITH A AS (
    SELECT CAR_ID, '대여중' AS AVAILABILITY
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    WHERE "2022-10-16" BETWEEN START_DATE AND END_DATE
)
SELECT DISTINCT(C.CAR_ID), IFNULL(A.AVAILABILITY, '대여 가능')
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS C
LEFT JOIN A ON C.CAR_ID = A.CAR_ID
ORDER BY CAR_ID DESC

SELECT에 새로운 칼럼명 AVAILABILITY를 추가해서 WITH문으로 가상테이블을 만들고

IFNULL로 처리한다

 

근데 이걸 MAX로 처리도 가능한다

MAX는 정렬 첫번쨰 상품명을 가지고 오기 때문에

SELECT CAR_ID,
MAX(IF(DATE("2022-10-16") BETWEEN START_DATE AND END_DATE, "대여중", "대여 가능")) AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC ;
반응형

'데이터베이스' 카테고리의 다른 글

SQL 처리과정과 I/O  (0) 2024.03.12
트랜잭션  (0) 2024.03.11
자바 변수형  (0) 2023.06.10
SELECT 문  (0) 2023.06.08
트랜잭션  (0) 2023.04.19