반응형
Query를 작성하다 보면 해당 칼럼에서 특정 문자열의 개수를 추출하는 경우가 발생합니다. 이는 그 문자열의 개수가 중요하다기보다, 해당 문자열의 개수를 가지고 해당 칼럼에 등록된 항목의 수가 몇 개인지 확인할 때 주로 사용됩니다.
LEN(원문) : 원문의 글자 수 반환
REPLCAE(원문, 대상문자, 변경 문자) : 원문에서 대상 문자를 찾아 변경 문자로 바꿔줌
SELECT V.TEXT 원문
, LEN(V.TEXT) "문자열 개수"
, LEN(V.TEXT) - LEN(REPLACE(V.TEXT, '/', '')) "슬래시(/) 문자열 개수"
, LEN(V.TEXT) - LEN(REPLACE(V.TEXT, '/', '')) + 1 "항목 수"
FROM (
SELECT '바나나/사과/배/딸기' AS TEXT
UNION ALL
SELECT '블루베리/파인애플/망고' AS TEXT
) V
아이디어는 단순합니다.
"전체 글자 수에서 찾으려는 글자 수를 뺀 전체 글자 수를 빼면 결국 찾으려는 글자 수를 찾아낸다."
라는 개념입니다.
찾는 단어수 = (전체 글자 수) - (찾는 단어를 뺀 나머지 글자 수)
3 번째 항목을 보시면, 전체 글자수글자 수 LEN(V.TEXT)에서 찾는 단어를 뺀 나머지 글자 수 LEN(REPLACE(V.TEXT, '/', ''))로 찾는 단어의 수를 찾아냈음을 확인할 수 있습니다.
여기에서 찾는 단어 수 + 1을 하면, 구분자(/)로 나눠진 각 항목의 수를 찾아 낼 수 있었음을 유추할 수 있습니다.
반응형
'개발 창고 > Database' 카테고리의 다른 글
[MySQL] SUBSTRING_INDEX를 이용한 SPLIT하기 (0) | 2022.09.18 |
---|---|
[MSSQL] Procedure / Function 조회 (0) | 2022.09.14 |
[MSSQL] 특정 위치 문자열 추출 (0) | 2022.04.07 |
[MSSQL] 여러 행 값을 한 컬럼에 넣기 (0) | 2022.02.23 |
[MSSQL] Number Format (0) | 2022.02.18 |