MSSQL 문자열 파싱에 조건절을 추가할 수 있나요?
조회수 534회
SELECT
D.dev_serial,
D.dev_name,
dbo.funcSplit(dbo.funcSplit(D.dev_name, N'_', 3), N' ', 1)as location
FROM cheonan01.[vms_device] D
코드는 위와 같으며
dbo.funcSplit(D.dev_name, N'_', 3)
의 뜻은 문자열(D.dev_name
)이 들어가면
지정문자열(N'_'
)을 기준으로 split 했을 때 3번 째의 요소를 반환하라는 함수입니다.
위처럼 문자열을 파싱해서 location이란 컬럼에 적용하는데
대부분 문자열의 형태가 'W18C064-15_1_성환읍 송덕리 173-26(배주산지)_PTZ'
이런식이라
함수에 반환 되는 값이 '성환읍'
이렇게 깔끔하게 떨어집니다. 그런데 간혹
'W28C015-12_3_[SC-36]불당동 492-3(상공회의소 입구 삼거리_요진와이시티방향)'
이런식으로 저장 되어 있는 컬럼이 몇 개 있어서 location컬럼에 '[SC-36]불당동'
와 같이 저장 되더라구요.
모든 컬럼을 제대로 파싱해서 location에 넣어야하는데 이럴 때에는 어떤식으로 해야하나요?
댓글 입력