"5일 이상" 이라는 문자열이 있을때 "5"라는 숫자만 출력 해야 할 때가 생긴다
이를 해결 하기 위해에 정규식과 REGEXP_REPLACE() 함수를 알 필요가 있다
- 정규식(정규표현식)
- 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어
- 특정 문자열이 주어 졌을때 문자를 변경
- 자주 사용 되는 정규표현식
-
^[0-9]*$: 숫자
-
^[a-zA-Z]*$: 영문자. 패턴변경자를 써서 /^[a-z]*$/i 같이 쓸 수 있다.
-
^[가-힣]*$: 현대 한글(유니코드를 지원하는 정규식 엔진에 한정)
-
^[ㄱ-ㅎㅏ-ㅣ가-힣]*$: 한글 자모 낱자를 포함한 모든 현대 한글
-
^[a-zA-Z0-9]*$: 영문/숫자
- ^[a-zA-Z0-9!#$%''\*\+-/=\?^_`\{|\}~]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}$ : 이메일
-
- REGEXP_REPLACE
- REGEXP_REPLACE(column_name,정규식,변경될 내용) 식으로 사용할 수 있다
- 위의 자주 사용되는 정규식을 REGEXP_REPLACE로 사용할때는
- REGEXP_REPLACE(column_name,'[^0-9]','') : 숫자만 출력
- REGEXP_REPLACE(column_name,'[0-9]','') : 문자만 출력
- REGEXP_REPLACE(column_name,'[^a-zA-Z0-9] ','') : 문자와 숫자만 출력
- UNION
- JOIN의 경우 옆으로 테이블을 붙이는 반면 UNION의 경우 위아래로 붙인다
- UNION의 경우 중복되는 데이터는 삭제되고 붙이며 UNION ALL의 경우 중복 상관없이 붙인다
- 사용예
SELECT *
FROM Products
WHERE price <= 5
UNION
SELECT *
FROM Products
WHERE price >= 200
참조 사이트 : https://namu.wiki/w/%EC%A0%95%EA%B7%9C%20%ED%91%9C%ED%98%84%EC%8B%9D, https://velog.io/@beautifulseoul/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EC%9D%84-%EC%9C%84%ED%95%9C-%EC%A4%91%EA%B8%89-SQL-4.-%EC%9C%84-%EC%95%84%EB%9E%98%EB%A1%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%B4%EC%96%B4%EB%B6%99%EC%9D%B4%EA%B8%B0
데이터 분석을 위한 중급 SQL - 4. 위 아래로 데이터 이어붙이기
SQL
velog.io
정규 표현식
正 規 表 現 式 / Regular Expression 프로그래밍 에서 문자열을 다룰 때, 문자열의 일정한 패턴을
namu.wiki
'SQL' 카테고리의 다른 글
이전, 이후 행 값을 불러오기 (0) | 2024.06.24 |
---|---|
SQL 임의 테이블 생성(WITH, RECURSIVE) (0) | 2024.06.20 |
GROUP BY 에서 문자열 합치기 (0) | 2024.06.17 |
문자열 합치기 (1) | 2024.06.15 |
문자열 자르기 (0) | 2024.06.05 |