2023. 4. 23. 16:09ㆍ개발공부 기강잡자/SQL
https://school.programmers.co.kr/learn/courses/30/lessons/157340
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
SELECT CAR_ID, IF(CAR_ID IN (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE (start_date <= '2022-10-16' AND end_date >= '2022-10-16'))
, '대여중', '대여 가능') AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY H
GROUP BY CAR_ID
ORDER BY CAR_ID DESC
우선 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블을 CAR_ID로 GROUP BY 한 다음에,
서브쿼리를 사용하여 각 CAR_ID가 (대여기간이 2022-10-16에 속하는 CAR_ID를 SELECT) 한 결과에 속하는지 IF 문으로 확인했다.
IF문
SELECT IF(조건문, 참일 경우 반환값, 거짓일 경우 반환값)
👉 조건문에 따라 반환 값을 설정할 수 있다.
ELSE IF와 ELSE 도 사용가능
IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF
참고 : https://dev.mysql.com/doc/refman/8.0/en/if.html
MySQL :: MySQL 8.0 Reference Manual :: 13.6.5.2 IF Statement
IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list] ... [ELSE statement_list] END IF The IF statement for stored programs implements a basic conditional construct. Note There is also an IF() function, which differs from th
dev.mysql.com
CASE WHEN
SELECT CASE WHEN 조건문 THEN 반환값
WHEN 조건문 THEN 반환값
ELSE 조건문에 해당되지 않는 경우 반환값
END
참고 : https://dev.mysql.com/doc/refman/8.0/en/case.html
MySQL :: MySQL 8.0 Reference Manual :: 13.6.5.1 CASE Statement
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE Or: CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE T
dev.mysql.com
'개발공부 기강잡자 > SQL' 카테고리의 다른 글
[MYSQL] 프로그래머스_자동차 대여 기록 별 대여 금액 구하기 (DATEDIFF/CASE WHEN/PIVOT) (0) | 2023.04.22 |
---|---|
[MYSQL] 문자열 추출 : SUBSTR, SUBSTRING (0) | 2023.04.21 |
[MySQL] Date Format 변환 (0) | 2023.04.10 |
[MySQL] 프로그래머스_서울에 위치한 식당 목록 출력하기 (0) | 2023.04.10 |