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에 넣어야하는데 이럴 때에는 어떤식으로 해야하나요?

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)