데이터베이스/Mysql
[MySQL] SQL - 서브쿼리 , GROUP_CONCAT, 조건문
책 읽는 개발자_테드
2020. 2. 25. 18:30
반응형
개발을 하다 SQL의 새로운 기능들 알게되어 정리해봅니다.
서브쿼리
mysql 에서는 쿼리 내부에 또 다른 쿼리를 포함시켜 사용하여 기능을 확장할 수 있습니다.
EX) select cst_code, (select * from pet B where A.cst_code = B.cst_code) from reserve A
GROUP_CONCAT
mysql 에서는 데이터베이스에서 가져온 결과가 여러 행일 때, 이 행들을 합쳐서 하나의 필드로 만드는 기능이 있습니다.
아래 예시의 pet_type1, pet_type2 처럼 가져오기를 원하는 컬럼을 적고, 쉼표 뒤에 "원하는 문자" 에서 처럼 원하는 문자를 넣어 하나의 필드로 데이터를 합칠 수 있습니다.
select group_concat(pet_type1, "원하는 문자", pet_type2, "원하는 문자") from reserve
조건문
IFNULL
mysql 에서는 데이터베이스에서 가져온 결과가 null일 때 다른 데이터로 치환할 수 있는 기능을 제공합니다.
select cst_code, IFNULL((select * from pet B where A.cst_code = B.cst_code), "noValue") from reserve A
CASE
mysql에서는 복잡한 조건 구조를 구현하기 위해 CASE를 사용합니다.
case 선언문 오른쪽에 비교할 값(cst_code)를 할당하면, WHEN 절의 값(codevalue,codevalue2)과 비교하여 동등하면 THEN 절이 실행되고, 그렇지 않다면 ELSE 절이 실행됩니다.
마지막으로, END 선언문을 통해 CASE 선언문을 종료할 수 있습니다.
select cst_code,
CASE cst_code
WHEN 'codeValue' THEN "test1"
WHEN 'codeValue2' THEN "test2"
ELSE "test3"
END AS case_test
from reserve A
출처
반응형