Query를 쓰다 보면 변경하고 싶은 내용이 생기기 마련이다.
특정문자를 다른 문자로 변경하기 위해서 사용하는 함수
SELECT restaurant_name "원래 상점명",
REPLACE(restaurant_name, 'Blue', 'Pink') "바뀐 상점명"
FROM food_orders
WHERE restaurant_name LIKE '%Blue Ribbon%'
특정 문자만 골라서 조회할 수 있게 해주는 함수
인수로 조회할 열과 그 중 어느 부분을 조회할 것을 설정합니다.
SELECT addr "원래 주소",
SUBSTR(addr, 1, 2) "시도"
FROM food_orders
WHERE addr LIKE '%서울특별시%'
원하는 문자가 여러 열에 있을 때, 이를 합쳐서 사용할 수 있는 함수
인수로 붙이고 싶은 값들을 받아서 원래 조회한 값에 이를 붙인다.
이때 붙일 수 있는 데이터는 문자, 숫자, 특수문자, 열까지 붙일 수 있다.
SELECT restaurant_name "원래 이름",
addr "원래 주소",
CONCAT('[', SUBSTRING(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
FROM food_orders
WHERE addr LIKE '%서울%'
조건을 설정해주고 싶을 때, 이 함수를 적용한다.
IF의 인수로는 조건, 조건이 ture일 때의 값, 조건이 false일 때의 값을 지정해주어야 한다.
SELECT restaurant_name,
cuisine_type "원래 음식 타입",
IF(cuisine_type='Korean', '한식', '기타') "음식 타입"
FROM food_orders
SELECT addr "원래 주소",
IF(addr LIKE '%평택군%', REPLACE(addr, '문곡리', '문가리'), addr) "바뀐 주소"
FROM food_orders
WHERE addr LIKE '%문곡리%'
SELECT SUBSTR(if(email LIKE '%gmail%', REPLACE(email, 'gmail', '@gmail'), email), 10) "이메일 도메인",
COUNT(customer_id) "고객 수",
AVG(age) "평균 연령"
FROM customers
GROUP BY 1
단일 조건이 아닌 여러 조건을 설정하고 싶을 때 사용하는 함수
CASE, WHEN, THEN, END로 구성되어 있으며, WHEN 구문에 조건을 설정하고, THEN 뒤에 조건이 부합할 때 수행할 구문을 넣는다.
SELECT order_id,
price,
quantity,
CASE WHEN quantity=1 THEN price
WHEN quantity>=2 THEN price/quantity
END "음식 단가"
FROM food_orders
SELECT restaurant_name,
addr,
CASE WHEN addr LIKE '%경기도%' THEN '경기도'
WHEN addr LIKE '%특별%' OR addr LIKE '%광역%' THEN SUBSTR (addr, 1, 5)
ELSE SUBSTR(addr, 1, 2)
END "변경된 주소"
FROM food_orders
조건식은 조건식 내부에 다른 조건식을 추가할 수도 있고 각각의 조건에 다른 함수를 적용할 수 도 있다.