본문 바로가기
프로그래밍/TSQL

TSQL 한글 발라내기 최적화

by 정리 습관(★arranging★) 2019. 10. 14.
728x90
개발 내용
1.cte 를 활용한 문자열분리(while 반복없이)
2.아스키, 유니코드, 바이트기준 한글판단

 활용 쿼리

 ;WITH EACH(N, STR,CODE,UNICODE) AS  

   SELECT 1,  SUBSTRING(@STR, 1, 1),ASCII(SUBSTRING(@STR, 1, 1)),CONVERT(BINARY(2),UNICODE(CONVERT(NVARCHAR(2),SUBSTRING(@STR, 1, 1))))--,CONVERT(BINARY(2),SUBSTRING(@STR, 1, 1))--UNICODE(SUBSTRING(@STR, 1, 1))

   UNION ALL

   SELECT N + 1, SUBSTRING(@STR, N+1, 1), ASCII(SUBSTRING(@STR, N+1, 1)),CONVERT(BINARY(2),UNICODE(CONVERT(NVARCHAR(2),SUBSTRING(@STR, N+1, 1))))--,CONVERT(BINARY(2),SUBSTRING(@STR, N+1, 1))--UNICODE(SUBSTRING(@STR, N+1, 1))

   FROM EACH A

   WHERE N < LEN(@STR)

)

select * from EACH

성능 아주 좋아요~ 

필요한 code 입맛에 맞게 가져다 쓰면 좋겠네요 ( 뒷 주석 해제 시는 CTE의 컬럼 정보를 잘 맞춰 주세요 ) 





댓글