注册 登录
编程论坛 SQL Server论坛

sql中substring函数的用法

梦的守护神 发布于 2007-03-10 13:37, 8590 次点击
我有个IP 地址 192.168.0.1
现在想用substring函数把点号之间的数据提取出来怎么办
5 回复
#2
bygg2007-03-10 17:35
可以在其他代码中通过点把点与点之间的数据存放到一个数组中,这样判断也很方便的.
#3
初学Delphi2007-03-12 10:21


sql语句不知道怎么写
你可以把开始IP,结束IP和你要判断的IP拆分一下,放在数组里
a,b,c
判断
for(i=0;i<4;i++)
if(c[i]>=a[i]&&c[i]<=b[i])
continue
//继续判断;
else
{"不在";break;}

#4
reniking2007-03-12 20:25
写了一个,可以用,就是挺麻烦的,@string1到4就是4段数字了

declare @string1 nvarchar(10)
declare @string2 nvarchar(10)
declare @string3 nvarchar(10)
declare @string4 nvarchar(10)
declare @temp nvarchar(20)

set @temp = '192.168.0.20' --以这个ip为例

set @string1=substring(@temp,1,charindex('.',@temp)-1)
set @temp = substring(@temp,charindex('.',@temp)+1,len(@temp))
set @string2=substring(@temp,1,charindex('.',@temp)-1)
set @temp = substring(@temp,charindex('.',@temp)+1,len(@temp))
set @string3=substring(@temp,1,charindex('.',@temp)-1)
set @string4 = substring(@temp,charindex('.',@temp)+1,len(@temp))

[此贴子已经被作者于2007-3-12 20:28:35编辑过]

#5
棉花糖ONE2007-03-12 21:43
今天在一本书上看到一种方法,使用parsename函数
select parsename('192.168.0.1',4)
select parsename('192.168.0.1',3)
select parsename('192.168.0.1',2)
select parsename('192.168.0.1',1)
依次输出 192 168 0 1
#6
bygg2007-03-14 09:04

又学了一招,呵

1