안녕하세요.
CASE CHARINDEX('/',Phone) WHEN 0 THEN
REPLACE(REPLACE(Phone,'-',''),' ','')
ELSE
REPLACE(REPLACE(SUBSTRING(Phone,1,CHARINDEX('/',Phone)-1),'-',''),' ','')
END as 핸드폰번호
위에 질의어 인데
다른건 이해 하겠는데
1.ELSE 문을 왜 쓰는지?
2.WHEN 0 THEN 에서 0 의 의미가 무엇인지?
3.SUBSTRING(Column,1,CHARINDEX('/',Column)-1) 에서 -1 의 의미가 무엇인지?
이렇게 3가지가 궁금 합니다.
고수님들 답변 기다리겠습니다.
감사합니다.
1. 만약 Phone라는 컬럼에서 '/'가 발견되지 않는다면 /* CASE CHARINDEX('/',Phone) WHEN 0 THEN */
'-'와 공백을 없에버려라
그게아니면 (발견됐다면) /* ELSE */
"/" 바로 앞까지만 잘라서 '-'와 공백을 없에버려라 /* SUBSTRING(Phone,1,CHARINDEX('/',Phone)-1) */
끗!!
2. Phone에서 CHARINDEX를 이용하여 "/"의 위치를 찾으려고 했는데 못찾았다는 뜻입니다. 없으면 못찾죠.
3. "/" 바로 앞까지만 자르기 위해서 CHARINDEX로 "/"를 찾은 다음 -1 해서 바로 앞에서 자른거죠.
정리해보면
전화번호에서 하이픈과 공백을 없에버릴건데 "/"가 있다면 그 바로 앞까지만 사용하겠다는겁니다.