문제

T-SQL에는 초보자 질문이 있습니다.

우리는 Excel 시트를 SQL Server 2008로 가져 왔습니다.이 Excel 파일은 너무 나쁘다. 우리는 전화 번호가 다음과 같이 보이기를 원합니다. 때로는 숫자가 접두사 '0123-2349823'또는 '0123/2349823'으로 인코딩됩니다.

일반적으로 Excel 파일을 a로 내 보냅니다 CSV 파일을 파일 한 다음 매직 Perl 스크립트를 시작하여 청소를 수행 한 다음 Excel 파일을 다시 임금으로 재구성하십시오.

그럼에도 불구하고 T-SQL로 이와 같은 일을하는 방법을 아는 것은 흥미로울 것입니다.

어떤 아이디어?

도움이 되었습니까?

해결책

같은 것

replace(replace(rtrim(ltrim('0123-2349823')), '-', ''), '/', '')

작동해야합니다. 예쁘지 않습니다. ;)

다른 팁

업데이트로 진행하여 SQL의 'REPLATE'및 LTRIM/RTRIM 기능을 사용합니다.

Update Table1
set phonenum = Case
        When phonenum like '%-%' Then LTrim(RTrim(Replace(phonenum, '-', '')))
            Else LTrim(RTrim(Replace(phonenum, '/', '')))
        End

"청소"에는 숫자 값 만 포함됩니다

전화 번호에 "-", "/"가 포함되어 있는지 여부에 따라 빈 문자열로 교체하십시오.

create table #t ( tel varchar(30) )

insert  #t select '0123-2349823' 
insert  #t select '0123/2349823'

select  tel,
        replace(tel, 
            case
                when patindex('%-%', tel) > 0 then '-'
                when patindex('%/%', tel) > 0 then '/'
            end, '') as Cleaned
from    #t
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top