步骤6
现在已经有了一个叫做[QQIPbase]的表了,表的效果如图6所示。使用SELECT count(1) FROM [QQIPbase]发现记录数是378451条,和378448条不相等,再使用DELETE [QQIPbase] WHERE [列 0] =''删除空白行。请确认数据库的记录数是否是:378448条。再执行分析器上执行下面的脚步,这个脚本的作用就是把图6中[列 0]字段的字符进行分隔。
(图6:刚导入后的效果图)
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE FUNCTION [dbo].[Get_StrArrayStrOfIndex]
(
@str VARCHAR(5000), --要分割的字符串
@split VARCHAR(10), --分隔符号
@index INT --取第几个元素
)
RETURNS VARCHAR(5000)
AS
BEGIN
DECLARE @location INT
DECLARE @start INT
DECLARE @next INT
DECLARE @seed INT
SET @str=LTRIM(RTRIM(@str))
SET @start=1
SET @next=1
SET @seed=LEN(@split)
SET @location=CHARINDEX(@split,@str)
WHILE @location0 and @index>@next
BEGIN
SET @start=@location+@seed
SET @location=CHARINDEX(@split,@str,@start)
SET @next=@next+1
END
IF @location =0 SELECT @location =LEN(@str)+1
RETURN SUBSTRING(@str,@start,@location-@start)
END 步骤7
执行下面语句进行字符分隔
--使用函数Get_StrArrayStrOfIndex进行分隔
select AllInfo,
dbo.Get_StrArrayStrOfIndex(alls,'$',1) as Start_IP,
dbo.Get_StrArrayStrOfIndex(alls,'$',2) as End_IP,
dbo.Get_StrArrayStrOfIndex(alls,'$',3) as Area,
dbo.Get_StrArrayStrOfIndex(alls,'$',4) as Remark
into QQIP
from [QQIPbase] 步骤8
进行设计表QQIP,对相应的字段设置大小,图7为最后的[QQIP]表效果图。