언어/SQL

문자형 함수

asu2880 2022. 6. 13. 16:01

대문자 / 소문자 변환

UCASE, UPPER 모두 대문자로
LCASE, LOWER 모두 소문자로
SELECT
  UPPER('abcDEF'),
  LOWER('abcDEF');


SELECT
  UCASE(CustomerName),
  LCASE(ContactName)
FROM Customers;


내용 이어 붙이기 ( CONCAT )

CONCAT(...) 괄호 안의 내용 이어붙임
CONCAT_WS(S, ...) 괄호 안의 내용 S로 이어붙임
SELECT CONCAT('HELLO', ' ', 'THIS IS ', 2021)


SELECT CONCAT_WS('-', 2021, 8, 15, 'AM')


SELECT CONCAT('O-ID: ', OrderID) FROM Orders;


글자 자르기

SUBSTRSUBSTRING 주어진 값에 따라 문자열 자름
LEFT 왼쪽부터 N글자
RIGHT 오른쪽부터 N글자
SELECT
  SUBSTR('ABCDEFG', 3),
  SUBSTR('ABCDEFG', 3, 2),
  SUBSTR('ABCDEFG', -4),
  SUBSTR('ABCDEFG', -4, 2);


SELECT
  LEFT('ABCDEFG', 3),
  RIGHT('ABCDEFG', 3);


SELECT
  OrderDate,
  LEFT(OrderDate, 4) AS Year,
  SUBSTR(OrderDate, 6, 2) AS Month,
  RIGHT(OrderDate, 2) AS Day
FROM Orders;


문자열 길이

LENGTH 문자열의 바이트 길이
CHAR_LENGTHCHARACTER_LEGNTH 문자열의 문자 길이
SELECT
  LENGTH('ABCDE'),
  CHAR_LENGTH('ABCDE'),
  CHARACTER_LENGTH('ABCDE');


-- w3wchool 사이트에서는 한글이 제대로 동작하지 않습니다.
SELECT
  LENGTH('안녕하세요'), -- 15
  CHAR_LENGTH('안녕하세요'), -- 5
  CHARACTER_LENGTH('안녕하세요'); -- 5

공백 제거

TRIM 양쪽 공백 제거
LTRIM 왼쪽 공백 제거
RTRIM 오른쪽 공백 제거
SELECT
  CONCAT('|', ' HELLO ', '|'),
  CONCAT('|', LTRIM(' HELLO '), '|'),
  CONCAT('|', RTRIM(' HELLO '), '|'),
  CONCAT('|', TRIM(' HELLO '), '|');


SELECT * FROM Categories
WHERE CategoryName = TRIM(' Beverages ')


n글자 수 만큼 붙여넣기

LPAD(S, N, P) S가 N글자가 될 때까지 P를 이어붙임
RPAD(S, N, P) S가 N글자가 될 때까지 P를 이어붙임
SELECT
  LPAD('ABC', 5, '-'),
  RPAD('ABC', 5, '-');


SELECT
  LPAD(SupplierID, 5, 0),
  RPAD(Price, 6, 0)
FROM Products;


A를 B로 변경

REPLACE(S, A, B) S중 A를 B로 변경
SELECT
  REPLACE('맥도날드에서 맥도날드 햄버거를 먹었다.', '맥도날드', '버거킹');


SELECT
  REPLACE(Description, ', ', ' and ')
FROM Categories;


특정 문자 첫 위치

INSTR(S, s) S중 s의 첫 위치 반환, 없을 시 0
SELECT
  INSTR('ABCDE', 'ABC'),
  INSTR('ABCDE', 'BCDE'),
  INSTR('ABCDE', 'C'),
  INSTR('ABCDE', 'DE'),
  INSTR('ABCDE', 'F');


SELECT * FROM Customers
WHERE INSTR(CustomerName, ' ') BETWEEN 1 AND 6;
-- < 6으로 하면?


자료형 변환

CAST(A, T) A를 T 자료형으로 변환
SELECT
  '01' = '1',
  CONVERT('01', DECIMAL) = CONVERT('1', DECIMAL);

 

728x90
반응형

'언어 > SQL' 카테고리의 다른 글

시간/날짜 함수 (오라클)  (0) 2022.06.13
시간/날짜 함수 (MYSQL)  (0) 2022.06.13
숫자형 함수  (0) 2022.06.13
LIKE 연산자  (0) 2022.06.13
IS, IS NOT 연산자  (0) 2022.06.13