CAST( 값 AS 데이터형식 ), CONVERT( 값, 데이터형식 ) 값을 설정한 데이터 형식으로 변환
SELECT CAST(1234 AS CHAR(4));
SELECT CONVERT(1234, CHAR(4));
IF(수식, 참일 때, 거짓일 때) 수식이 참 또는 거짓에 따라 결과를 분기하는 함수
SELECT
emp_id
,gender
,IF(gender = 'M', '남자', '여자') AS gender_ko
FROM employees;
IFNULL(수식1, 수식2) 수식1이 NULL이면 수식2를 반환, NULL이 아니면 수식1를 반환
-- '11'이 반환
SELECT IFNULL('11', '수식2');
-- '수식2'가 반환
SELECT IFNULL(NULL, '수식2');
-- 아래 end_at와 같이 특정 컬럼을 지정해서 해당 컬럼의 값에 따라 데이터를 조회
SELECT
emp_id
,title_code
,IFNULL(end_at, DATE(NOW())) AS end_at
FROM title_emps;
NULLIF(수식1, 수식2) 수식1과 2가 같으면 NULL을 반환, 다르면 수식1을 반환
-- NULL이 반환
SELECT NULLIF(1, 1);
-- 1이 반환
SELECT NULLIF(1, 2);
-- 아래 gender의 값이 'M'과의 동일 여부를 체크하고 그에 따라 데이터 조회
SELECT
emp_id
,name
,gender
,NULLIF(gender, 'M') gender_nullif
FROM employees;
CASE ~ WHEN ~ ELSE ~ END 다중 분기를 위해 사용 예) CASE 체크하려는 수식1 WHEN 분기수식1 THEN 결과1 WHEN 분기수식2 THEN 결과2 WHEN 분기수식3 THEN 결과3 ELSE 결과4 END
-- gender가 'M'이면 '남자' 아니면 '여자'로 출력
SELECT
emp_id
,name
,gender
,CASE gender
WHEN 'M' THEN '남자'
ELSE '여자'
END AS ko_gender
FROM employees;
CONCAT(문자열1, 문자열2, ...) 문자열을 연결
-- '안녕하세요.'
SELECT CONCAT('안녕', '하세요.');
-- '안녕하세요. 미어캣 입니다.'
SELECT CONCAT('안녕하세요.', ' ', '미어캣 입니다.');
CONCAT_WS(구분자, 문자열1, 문자열2, ...) 문자열 사이에 구분자를 넣어 연결
-- '딸기/바나나/토마토/수박'
SELECT CONCAT_WS('/', '딸기', '바나나', '토마토', '수박');
FORMAT(숫자, 소숫점 자릿수) 숫자에 ','를 넣어주고, 소수점 자릿수 까지 표현
-- '123,456'
SELECT FORMAT(123456, 0);
-- '123,456.00'
SELECT FORMAT(123456, 2);
LEFT(문자열, 길이) 문자열을 왼쪽부터 길이만큼 잘라 반환
-- '12'
SELECT LEFT('123456', 2);
-- '1234'
SELECT LEFT('123456', 4);
RIGHT(문자열, 길이) 문자열을 오른쪽부터 길이만큼 잘라 반환
-- '56'
SELECT RIGHT('123456', 2);
-- '3456'
SELECT RIGHT('123456', 4);
UPPER(문자열) 소문자를 대문자로 변경
-- 'ABCD'
SELECT UPPER('abcd');
LOWER(문자열) 대문자를 소문자로 변경
-- 'abcd'
SELECT LOWER('ABCD');
LPAD(문자열, 길이, 채울 문자열) 문자열을 포함해 길이만큼 채울 문자열을 왼쪽에 삽입해 반환
-- '0000123456'
SELECT LPAD('123456', 10, '0');
RPAD(문자열, 길이, 채울 문자열) 문자열을 포함해 길이만큼 채울 문자열을 오른쪽에 삽입해 반환
-- '1234560000'
SELECT RPAD('123456', 10, '0');
TRIM(문자열) 좌우 공백을 제거
-- '1234'
SELECT TRIM(' 1234 ');