문자열 연결
문자열과 문자열 연결
문자열끼리 연결할 때는 단순히 +로 연결할 수도 있지만, CONCAT 함수를 사용할 수 있다. 다음은 몇몇 문자열을 한번에 연결한 예시이다.
SELECT CONCAT("SQL ", "Tutorial ", "is ", "fun!") AS ConcatenatedString;
만약 3개의 열을 하나의 열로 합치고 싶다면 아래 예제처럼 활용할 수 있다.
SELECT CONCAT(Address, " ", PostalCode, " ", City) AS Address
FROM Customers;
데이터 형 변환
문자열과 다른 데이터형 연결
문자열이 아닌 다른 데이터형의 값과 연결해야 할 경우는 어떻게 할 수 있을까? 다른 프로그래밍 언어처럼 변환하여 연결해주면 되는데, CAST와 CONVERT를 활용하면 된다. CAST 함수의 사용법은 다음과 같다.
CAST(value AS datatype)
-- Example
SELECT CAST("2017-08-29" AS DATE);
CONVERT() 함수는 특정 값을 데이터타입이나 문자열의 집합으로 바꿔준다. 아래는 사용법 예시이다.
CONVERT(value, type)
-- Or
CONVERT(value USING charset)
-- Example
SELECT CONVERT(150, CHAR);
NULL 처리하기
특정 데이터형이 아닌 NULL과 연결하려고 하면, ISNULL로 대체할 값을 만든 후 반환한다. 다음은 ISNULL의 사용법이다. 만약 NULL 값이 있는 경우 공백으로 반환할 수 있다.
ISNULL(column, expression)
-- Example
SELECT ISNULL(col_a, "");
만약 여러 열에 대해서 NULL을 체크하고 대입하고 싶다면, COALESCE 함수를 사용할 수 있다. 여러 개의 데이터 리스트를 넣고 그 중에 가장 첫번째로 NULL이 아닌 것을 입력한다. 사용법은 아래와 같이 넣어줄 수 있다.
COALESCE(val1, val2, ...., val_n)
문자열 처리
소문자, 대문자 변경
소문자와 대문자를 구분하는 경우도 있지만, 구분이 필요하지 않을 수도 있다. 이때 LOWER와 UPPER를 사용하면 된다.
SELECT LOWER("SQL Tutorial is FUN!");
SELECT UPPER("SQL Tutorial is FUN!");
문자열 공백 제거
문자열 특성상 공백이 입력되는 경우가 있다. 이 경우 TRIM을 활용하면 되는데, 다른 프로그래밍 언어처럼 왼쪽, 오른쪽에 대해서도 적용할 수 있는 LTRIM, RTRIM도 존재한다. 어떤 공백을 제거하는지 살펴보기 위해 아래 예제를 참고하면 된다.
SELECT TRIM(' SQL Tutorial ') AS TrimmedString;
SELECT RTRIM("SQL Tutorial ") AS RightTrimmedString;
SELECT LTRIM(" SQL Tutorial") AS LeftTrimmedString;
지정한 길이만큼 반환
앞서 TRIM처럼 왼쪽이나 오른쪽에서 지정한 길이만큼 반환하는 함수가 LEFT, RIGHT가 있다. 사용법은 아래와 같다.
RIGHT(string, number_of_chars)
LEFT(string, number_of_chars)
만약 지정한 범위의 문자열을 반환하려면 SUBSTRING을 활용할 수 있다. string부터 시작 숫자를 그리고 반환할 문자 개수를 적어서 사용한다.
SUBSTRING(string, start, length)
--OR
SUBSTRING(string FROM start FOR length)
문자 바꾸기
기존 문자에서 특정 문자(substring)를 새로운 문자(new_string)으로 바꾸기 위해서는 아래와 같이 REPLACE를 쓰면 된다.
REPLACE(string, substring, new_string)
반복하기
특정 문자를 반복하려면 REPEAT을 사용하면 된다.
REPEAT(string, number)
만약 공백을 반복하고 싶다면, SPACE를 활용한다.
SPACE(number)
역순
만약 문자열을 거꾸로 정렬하기 위해서는 REVERSE를 활용한다.
REVERSE(string)
참고자료
- W3Schools
- 강성욱. Do it! SQL 입문. 이지스 퍼블리싱.