2017-12-13 2 views
1

이 문자열 10.159.101.0-10.159.101.255을 두 개의 문자열로 나눌 수 있습니까?sql 문자열을 구분 기호를 기반으로 다양한 숫자로

나는이 방법으로 MySQL의에서이 작업을 수행 할 수 있습니다

SELECT SUBSTRING_INDEX('10.159.101.0-10.159.101.255','-',1)as string1 

가 어떻게 SQL에서 같은 일을 수행 할 수 있습니까? IP 주소의 성격으로 인해 위치가 달라질 수있는 - 구분 기호를 기반으로 IP 범위를 두 개의 문자열로 분할하고 싶습니다.

답변

2

SUBSTRING, CHARINDEX & LEN의 조합을 사용하십시오.

SELECT yourfield, 
SUBSTRING(yourfield, 1,CHARINDEX('-', yourfield)-1) LEFTSIDE, 
SUBSTRING(yourfield, CHARINDEX('-', yourfield)+1, LEN(yourfield)) RIGHTSIDE 
FROM yourtable 

출력

yourfield     LEFTSIDE  RIGHTSIDE 
10.159.101.0-10.159.101.255 10.159.101.0 10.159.101.255 

SQL 바이올린 : http://sqlfiddle.com/#!6/cb36f/3/0

+1

감사합니다. r me – spas2k

+1

당신은 나를 위해 너무 빨리, 내 대답을 다시 써야했다 :-) +1. –

1

이 같은 LEFTRIGHT 매트의 대답에 증명, 또는 당신이 SUBSTRINGCHARINDEX을 사용 SQL 서버에서 :

DECLARE @string varchar(50); 
SET @string = '10.159.101.0-10.159.101.255'; 
SELECT LEFT(@string, CHARINDEX('-', @string)-1) As First, 
     RIGHT(@string, LEN(@string) - CHARINDEX('-', @string)) As Second 
관련 문제