首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据提取,该如何处理

2012-04-11 
数据提取abc%123%a12d%学SQL类似这样的语句提取出来的数据是abc123a12学SQL用什么方法提出来呢。[解决办法]

数据提取
abc%123%a12d%学SQL 类似这样的语句
提取出来的数据是abc
  123
  a12
  学SQL
用什么方法提出来呢。

[解决办法]

SQL code
declare @s nvarchar(1000)set @s='abc%123%a12d%学SQL'select SUBSTRING(@s,number,CHARINDEX('%',@s+'%',number)-number) from master.dbo.spt_values as a where CHARINDEX('%','%'+@s,a.number)=a.number and a.type='P'/*abc123a12d学SQL*/
[解决办法]
探讨
就是%确定提取。。。

[解决办法]
SQL code
--轉老大if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_GetStr]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[f_GetStr]GO--分段截取函数CREATE FUNCTION dbo.f_GetStr(@s varchar(8000),      --包含多个数据项的字符串@pos int,             --要获取的数据项的位置@split varchar(10)     --数据分隔符)RETURNS varchar(100)ASBEGIN    IF @s IS NULL RETURN(NULL)    DECLARE @splitlen int    SELECT @splitlen=LEN(@split+'a')-2    WHILE @pos>1 AND CHARINDEX(@split,@s+@split)>0        SELECT @pos=@pos-1,            @s=STUFF(@s,1,CHARINDEX(@split,@s+@split)+@splitlen,'')    RETURN(ISNULL(LEFT(@s,CHARINDEX(@split,@s+@split)-1),''))ENDGOselect dbo.f_GetStr('2∮11∮10∮09∮10∮13∮786∮91.93∮69∮100.00 ',7,'∮')/*----------------------------------------------------------------786(1 個資料列受到影響) 

热点排行