如何将此字符串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地址的性质,它可能会在位置上发生变化。
答案 0 :(得分: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
答案 1 :(得分:1)
在SQL Server中,您可以使用Matt的答案中所示的SUBSTRING
和CHARINDEX
,或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