쿼리 작업을 하다가 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))
댓글 없음:
댓글 쓰기