DBMS

[SQL] 변환함수 CAST, 제어흐름함수

div_yeri 2023. 1. 30. 19:00
728x90

변환함수

▶DATE_FORMAT(날짜, 형식)

SELECT date_format(now(), '%Y-%M-%d') AS "Now";

 

▶CAST(값 AS 데이터타입)

  • BINARY
  • CHAR (문자형)
  • SIGNED (부호 있는 정수형) / UNSIGNED (부호 없는 정수형)
  • DECINAL (숫자형) / DOUBLE (숫자형) / FLOAT (숫자형)
  • DATETIME (날짜형) / DATE (날짜형)
  • TIME (시간)
SELECT cast("123" as signed), cast("-123.55" as signed),
       cast("123" as unsigned), cast("-123.45" as unsigned);

제어흐름함수

▶IF(논리식, 참일 때 값, 거짓일 때 값) : 논리식이 참이면 참일 때 값을 출력 거짓이면 거짓일때 값을 출력

SELECT employee_id, salary, IF(salary>10000, '1등급', '2등급') AS "급여 등급"FROM employees;

 

▶IFNULL(수식1, 수식2) : 수식1이 NULL이 아니면 수식1이 반환, NULL이면 수식2가 반환

SELECT employee_id, last_name, salary, commission_pct, ifnull(commission_pct, 0) FROM employees;

 

▶NULLIF(수식1, 수식2) :  수식1,2가 같으면 NULL 반환 다르면 수식1을 반환

▶CASE 비교값 WHEN 값1 THEN 결과1

                          WHEN 값2 THEN 결과2 ... ... ELSE 기본값 END

select job_id ,case job_id 
	when 'AD_PRES' then 'A'
	when 'ST_MAN' then 'B' 
	when 'IT_PROG' then 'C'
	when 'SA_REP' then 'D'
	when 'ST_CLERK' then 'E'
	else '0' end as grade from employees;