基于不同数字分隔符的sql拆分字符串
如何将此字符串基于不同数字分隔符的sql拆分字符串,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,如何将此字符串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地址的性质,分隔符的位置可能会有所不同 使用子字符串,CHARINDEX和LEN的组合 SELECT yourfield, SUBSTRING(
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地址的性质,分隔符的位置可能会有所不同 使用子字符串
,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:在SQL Server中,您可以使用Matt的回答中演示的
子字符串和CHARINDEX,或者左和右,如下所示:
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
你在哪里对我来说太快了,我不得不重新写我的答案:-)+1。