sql 根据不同数字的分隔符拆分字符串
sql split string based on delimiter with varying numbers
如何将这个字符串 10.159.101.0-10.159.101.255
分成两个字符串?
我可以在 Mysql 中以这种方式完成:
SELECT SUBSTRING_INDEX('10.159.101.0-10.159.101.255','-',1)as string1
如何在 SQL 中完成同样的事情?我想根据 -
分隔符将 IP 范围分成两个字符串,由于 IP 地址的性质,分隔符的位置可能会有所不同。
使用 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 Fiddle: http://sqlfiddle.com/#!6/cb36f/3/0
在 SQL 服务器中,您将使用 SUBSTRING
和 CHARINDEX
,如 Matt 的回答所示,或者 LEFT
和 RIGHT
,如下所示:
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
如何将这个字符串 10.159.101.0-10.159.101.255
分成两个字符串?
我可以在 Mysql 中以这种方式完成:
SELECT SUBSTRING_INDEX('10.159.101.0-10.159.101.255','-',1)as string1
如何在 SQL 中完成同样的事情?我想根据 -
分隔符将 IP 范围分成两个字符串,由于 IP 地址的性质,分隔符的位置可能会有所不同。
使用 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 Fiddle: http://sqlfiddle.com/#!6/cb36f/3/0
在 SQL 服务器中,您将使用 SUBSTRING
和 CHARINDEX
,如 Matt 的回答所示,或者 LEFT
和 RIGHT
,如下所示:
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