[Presto]String Functions | Regular Expression

InHwa Hong·2022년 2월 20일
0

SQL

목록 보기
7/10

1. 문자열 결합

1️⃣ string1 || string2 ...
2️⃣ concat(string1, string2, ...)

SELECT employee_id
    , first_name || '-' || last_name as emp_name1 -- 1,2 조회 결과 같음
    , concat(first_name,'-',last_name) emp_name2 -- 1,2 조회 결과 같음
FROM employees 

2. 문자열 비교

1️⃣ LIKE

  • LIKE 연산자는 문자열에서 지정된 문자 패턴을 일치시키는 데 사용됨
  • 매칭은 대소문자를 구분
  • '%' 는 모든 문자를 의미
  • 형태 : 컬럼명 LIKE pattern
SELECT employee_id
FROM employees 
WHERE last_name LIKE'da%'
    and last_name LIKE'%Da'
    and last_name LIKE'%da%'

2️⃣ 복수의 LIKE 절

  • 형태 : regexp_like(컬럼명, 'A|B|C|D|E')
SELECT employee_id
FROM employees 
WHERE regexp_like(category_1st, '니트|원피스|스웨터')

3. 문자형 함수

  • 자주 쓰는 함수만 정리
n함수기능사용예반환값
1️⃣lower(string)소문자로 변환SELECT lower('SQL') FROM DUAL;sql
2️⃣upper(string)대문자로 변환SELECT upper('sql') FROM DUAL;SQL
3️⃣length(string)문자의 글자수 반환SELECT length('sql') FROM DUAL;3
4️⃣substr(string, n1, n2)-n1 부터 시작해서 n2만큼 잘라낸 결과 반환SELECT substr('ABCDEFG', 2, 3) FROM DUAL;BDC
-n1이 음수면 오른쪽 끝에서부터 거꾸로 세어서 가져옴
-n2 생략시 n1부터 끝까지 가져옴
5️⃣trim(string)문자 양쪽 끝 공백을 제거한 결과 반환SELECT length(' SQL ') FROM DUAL;'SQL'
6️⃣replace(string, search, replace)string에서 search를 찾아 replace로 대체SELECT replace('ABC', 'B', 'd') FROM DUAL;AdC
7️⃣split(string, 구분기호)구분 기호기준으로 문자열을 분할하고 배열을 반환SELECT split('abc-def', '-')[abc, def]
8️⃣split_part(string, 구분기호, index)-구분 기호기준으로 문자열을 분할하고 필드 인덱스를 반환SELECT split('abc-def', '-', 1)abc
-index starts with 1SELECT split('abc-def', '-', 2)def

4. 정규 표현식

1️⃣ regexp_extract_all(string, pattern, group)-> varchar

-- /d+ -> 숫자
-- [a-z]+ -> 문자
SELECT regexp_extract_all('1a 2b 14m', '(\d+)([a-z]+)', 1) -- ['1', '2', '14']
    , regexp_extract_all('1a 2b 14m', '(\d+)([a-z]+)', 2) -- ['a', 'b', 'm']

2️⃣ regexp_replace(string, pattern, function) -> varchar

SELECT regexp_replace('new york', '(\w)(\w*)', x -> upper(x[1]) || lower(x[2])); --'New York'

3️⃣ regexp_like(string, 'a|b|c') -> boolean

0개의 댓글