2009년 7월 25일 토요일

msSql 기초

쿼리 작업을 하다가 lastIndexOf 기능이 필요해서 찾아봤더니.. SQL 문자열 함수중에는 없더군요. 혹시 내가 모르는 다른 함수가 있는지는 모르겠지만.

   

촌각을 다투는 데이터 추출작업에 사용하기 위해서 1~2 내에 해결방법을 찾아보았는데.

유용할지 모르겠습니다.

   

필요했던 기능은  다음입니다.

varchar(15) 정의된 ip 주소가 있습니다.

"192.168.1.22"

"61.38.79.23" 

등의 형태로 들어옵니다.

여기서 특정 네트워크 대역에 있는 ip 구분하기 위해서 마지막의 22 23 값이 필요한거죠

   

   

아래는 특정 ip 예를 들어서 SQL 문자열 함수를 이용하여 단계적으로결과가 어떻게 나오는지 확인합니다.

그리고 마지막이 실제적으로 사용한 최종 쿼리 문입니다.

   

declare @vcIP varchar(15)

set @vcIP = '115.137.44.148'

   

select CHARINDEX('.', @vcIP)

select REVERSE(@vcIP)

select CHARINDEX('.', REVERSE(@vcIP))

select LEN(@vcIP)- CHARINDEX('.', REVERSE(@vcIP))  

select CHARINDEX('.', @vcIP,LEN(@vcIP)- CHARINDEX('.', REVERSE(@vcIP)))

   

[최종 쿼리]

select SUBSTRING(@vcIP,CHARINDEX('.', @vcIP,LEN(@vcIP)- CHARINDEX('.', REVERSE(@vcIP))) + 1,

     LEN(@vcIP) - CHARINDEX('.', @vcIP,LEN(@vcIP)- CHARINDEX('.', REVERSE(@vcIP)) + 1))

댓글 없음:

댓글 쓰기