"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

+ Recent posts