728x90
컬럼의 이름을 바꾸고 여러 컬럼을 합쳐서 새로운 컬럼을 만든다.
ALIAS:
SELECT email AS EMAIL,height 키,weight ,weight/((height/100) * (height/100)) AS BMI FROM member ;
원래의 컬럼 이름을 써주고 그 뒤에 (AS 새로운 이름)을 써주면 된다. 하지만 AS를 생략하고 스페이스바 한 번 클릭 후 바로 새로운 이름을 적어도 된다.
CONCAT:
SELECT
email,
CONCAT(height,'cm',',',weight,'kg') AS '키와 몸무게'
FROM member;
CONCAT 함수는 하나의 컬럼 새로운 컬럼을 만든다. concat() 괄호 안에 합치고 싶은 자료들을 넣으면 된다. 위에 예에서는
키라는 컬럼과 무게라는 컬럼을 합치면서 cm와 kg 그리고,를 더해서 새로운 컬럼을 만들었고 그 컬럼 이름을 키와몸무게로 만든 것이다.
CASE:
SELECT
email,
CONCAT(height,'cm',',',weight,'kg') AS '키와 몸무게',
weight / ((height/100) *(height/100)) AS BMI,
(CASE
WHEN weight IS NULL OR height IS NULL THEN '비만 여부 알 수 없음'
WHEN weight / ((height/100) * (height/100)) >= 25 THEN '과체중 또는 비만'
WHEN weight / ((height/100) * (height/100)) >= 18.5
AND weight / ((height/100) * (height/100)) < 25
THEN '정상'
ELSE '저체중'
END) AS obesity_check
FROM member
ORDER BY obesity_check ASC;
CASE문은조건문이라고 생각하면 편하다. WHEN절에 있는 조건을 만족 하면 뒤에 있는 THEN절에 있는 것을 반환한다.
CASE문의 기본적인 특징을 살펴보면:
- WHEN - THEN은 항상 같이 사용한다.
- WHEN - THEN은 여러개 사용할 수 있다.
- ELSE가 존재한다면 모든 WHEN - THEN 조건이 TRUE(참)이 아닌 경우 ELSE의 결과값을 반환한다.
- ELSE가 없고, 조건이 TRUE(참)이 아니라면 NULL을 반환한다.
위에 예시는 사람들의 BMI지수를 측정하는 표를 만든 것이다. CASE안에 내용을 보면 여러 WHEN - THEN절을 만들어 BMI지수에 따라 사람들을 분류했다. 그리고 CASE-END문을 괄호로 묶고 AS를 이용하면 컬럼의 이름을 지정할 수 있다.
또한 조건절의 특성이기 때문에 WHEN절 안에 AND문을 사용할 수 있다.
728x90