728x90
IF() 함수
- 표현식1 이 참이면, 표현식2를 반환
- 표현식1 이 거짓이면, 표현식3을 반환
- 기본 형식
IF ( 표현식1, 표현식2, 표현식 3 )
- Orders 테이블 데이터
- Items 테이블 데이터
고객이 주문한 판매금액이 10000원을 초과하면 배송료를 면제하기 위한 질의문을 작성하시오. 단, 결과 테이블은 주문번호(orders.num), 계정(orders.customer), 주문물품(orders.item), 판매금액, 배송비(무료배송일 경우, ‘무료배송’, 유료 배송비는 2500)를 반환한다.
- 질의에 필요한 테이블 : orders, items
- 판매금액 계산 : orders.qty * items.price
- 배송비를 계산 : IF ( ( orders.qty * items.price ) > 10000, ‘무료배송’, ‘2500’ ) AS ‘배송비’
SELECT
orders.num,
orders.customer,
orders.item,
( orders.qty * items.price ) AS '판매금액',
IF ( ( orders.qty * items.price ) > 10000,'무료배송', '2500' ) AS '배송비'
FROM orders, items
WHERE orders.item = items.code;
~ 위 쿼리문 결과
고객이 주문한 판매금액이 10000원을 초과하면 배송료를 면제하기 위한 질의문을 작성하시오. 단, 같은 날 동일한 고객이 여러 건 주문한 경우, 묶음 배송으로 처리하고, 결과 테이블은 계정(orders.customer), 판매금액, 배송비(무료배송일 경우, ‘무료배송’, 유료 배송비는 2500)를 반환한다.
- 질의에 필요한 테이블 : orders, items
- 같은 판매일에 같은 고객이 주문한 경우 : GROUP BY orders.date, orders.customer
- 같은 판매일에 같은 고객이 주문한 판매금액 계산 : SUM( orders.qty * items.price )
- 배송비를 계산 : IF ( SUM( orders.qty * items.price ) > 10000, ‘무료배송’, ‘2500’ ) AS ‘배송비’
SELECT
orders.customer,
SUM( orders.qty * items.price ) AS '판매금액',
IF ( SUM( orders.qty * items.price ) > 10000,'무료배송', '2500' ) AS '배송비'
FROM orders, items
WHERE orders.item = items.code
GROUP BY orders.date, orders.customer;
- 위 쿼리문 결과
IFNULL( ) 함수
- 표현식1이 NULL이 아니면, 표현식1을 반환
- 표현식1이 NULL이면, 표현식2를 반환
- 기본 형식
IFNULL ( 표현식1, 표현식2 )
고객(customer) 테이블의 계정(account), 고객명(name), 주소(address)를 검색하되, 주소가 NULL로 입력된경우, ‘주소없음’으로 표기하고, 각 속성명을 계정, 고객명, 주소로 출력하시오.
- 각 속성명 ‘계정’, ‘고객명’으로 표기 : account AS ‘계정’, name AS ‘고객명’
- 주소가 NULL인 경우 ‘주소없음’으로 표기 : IFNULL( address, ‘주소없음’ ) AS ‘주소’
- Customer 테이블 데이터
SELECT
account AS '계정',
name AS '고객명',
IFNULL( address, '주소없음' ) AS '주소'
FROM customer;
- 위 쿼리문 결과
NULLIF( ) 함수
- 표현식1과 표현식2가 같으면 NULL을 반환
- 표현식1과 표현식2가 다르면 표현식1을 반환
- 기본 형식
NULLIF( 표현식1, 표현식2 )
- 동일한 함수
CASE
WHEN 표현식1 = 표현식2 THEN NULL
ELSE 표현식1
END
728x90
'프로그래밍 > Database' 카테고리의 다른 글
MySQL DATE FORMAT 함수(날짜 포맷 함수) (0) | 2020.04.28 |
---|---|
MySQL Date 함수(날짜 함수) (0) | 2020.04.28 |
MySQL 제어 함수 - CASE (0) | 2020.04.27 |
MySQL의 내장 함수 (0) | 2020.04.27 |
데이터 수정 및 삭제 (UPDATE, DELETE) (0) | 2020.04.18 |