* ABC12345 처럼 영문 + 숫자가 조합되어 있는 데이터들이 많을 때 숫자만 골라서 조건문 쓰는 방법
✅ 1단계: 숫자 존재 여부 확인 – PATINDEX
PATINDEX('%[0-9]%', 컬럼명) > 0
SELECT
컬럼명,
CASE
WHEN PATINDEX('%[0-9]%', 컬럼명) > 0 THEN '숫자 있음'
ELSE '숫자 없음'
END AS 숫자포함여부
FROM 테이블명
- PATINDEX('%[0-9]%', 컬럼)은 숫자가 처음 등장하는 위치를 반환합니다.
- 숫자가 있으면 0보다 큰 값, 없으면 0이 나옵니다.
✅ 2단계: 숫자 추출 – SUBSTRING + PATINDEX
SUBSTRING(컬럼명, PATINDEX('%[0-9]%', 컬럼명), 5)
SELECT
컬럼명,
SUBSTRING(컬럼명, PATINDEX('%[0-9]%', 컬럼명), 5) AS 숫자부분
FROM 테이블명
- 첫 번째 숫자가 나오는 위치부터 5글자 추출
- 예: 'ABC12345' → '12345'
숫자가 없는 경우를 제외하고 분석하고 싶을 땐
WHERE PATINDEX('%[0-9]%', 컬럼명) > 0
숫자로 필터링된 조건문을 만들고 싶다면 PATINDEX + CAST 조합도 사용 가능
WHERE
TRY_CAST(SUBSTRING(컬럼명, PATINDEX('%[0-9]%', 컬럼명), 5) AS INT) > 10000
SUBSTRING(M.LOCNCODE, PATINDEX('%[0-9]%', tablenumber), 5) IN ('10921', '10922', '10931')
OR SUBSTRING(M.LOCNCODE, PATINDEX('%[0-9]%', tablenumber), 3) IN ('238', '268', '288', '299')'Data Analysis > SQL Basic' 카테고리의 다른 글
| [SQL] DATEPART 실무 활용 문법 (0) | 2025.06.04 |
|---|---|
| [SQL 실습] URL 분석에 자주 사용되는 SQL 패턴 정리 (0) | 2024.12.31 |
| SQL_해커랭크 (1) | 2024.09.14 |
| 데이터리안 SQL 데이터 분석 캠프 입문반 수료 完 (2) | 2024.01.09 |
| SQL Basic_문법 (0) | 2023.12.10 |