`
javababy1
  • 浏览: 1229719 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

利用xml在指定分隔符的情况下获取指定数据项的指定位置的串

阅读更多

-- 好久没写blog,今天就看了小梁的blog,发现这小子挺用功,有"感"而发,写一个函数来分享<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

-- 这个有感于xml和以前在2000下的指定分隔符的情况下获取指定数据项的指定位置的串

-- 运行环境:

SELECT @@version

/*

-------------------------------------------------

Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)

Apr 14 2006 01:12:25

Copyright (c) 1988-2005 Microsoft Corporation

Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)

(1 行受影响)

*/

-- 加一个分隔函数:

create function F_split(

@s varchar(8000), --包含多个数据项的字符串

@pos int, --要获取的数据项的位置

@split varchar(10) --数据分隔符

)RETURNS varchar(100)

AS

BEGIN

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(nullif(left(@s,charindex(@split,@s+@split)-1),''))

END

GO

  

-- 数据准备

DECLARE @t TABLE(data varchar(50))

INSERT @t VALUES('10/20/30/50/40/90')

INSERT @t VALUES('1/2/3/5/4/9')

INSERT @t VALUES('10/5/60/33/12/1')

INSERT @t VALUES('10/8/3/60/55/20')

select dbo.F_split(data,3,'/') as col

from @t

/*

col

--------------------------------------------------

30

3

60

3

(4 行受影响)

*/

drop function F_split;

GO

-- 下面我们来试试用xml的语法完成上面的功能。

create function F_split(

@s varchar(8000), --包含多个数据项的字符串

@pos int, --要获取的数据项的位置

@split varchar(10) --数据分隔符

)RETURNS VARCHAR(100)

AS

BEGIN

DECLARE @RET VARCHAR(100)

SELECT @RET =

CAST(('<root><v>'+ REPLACE(@s,@split,'</v><v>')+'</v></root>'

) AS xml).

query('//v[position()=sql:variable("@pos")]').

value('.[1]','VARCHAR(max)')

return @ret

END

GO

-- 数据准备

DECLARE @t TABLE(data varchar(50))

INSERT @t VALUES('10/20/30/50/40/90')

INSERT @t VALUES('1/2/3/5/4/9')

INSERT @t VALUES('10/5/60/33/12/1')

INSERT @t VALUES('10/8/3/60/55/20')

select dbo.F_split(data,3,'/') as col

from @t

DROP FUNcTION F_split

/*

col

------------------------------

30

3

60

3

(4 行受影响)

*/

-- 对比两个函数,大家看看是不是XML很有意思呀!!

分享到:
评论

相关推荐

    ListView分隔符添加

    - `getItem(int position)`: 获取指定位置的项数据。 - `getItemId(int position)`: 返回项的唯一标识。 - `getView(int position, View convertView, ViewGroup parent)`: 这是最重要的方法,用于创建或复用项...

    获取目标串中随机出现子串之间的数据

    在IT领域,字符串处理是一项基础且重要的技能,尤其是在文本分析、数据处理以及各种解析任务中。标题"获取目标串中随机出现子串之间的数据"所指的问题,是关于如何从一个字符串中有效地提取出特定子串之间或子串周围...

    java兼容linux版获取xml

    在Java中,推荐使用`File.separator`来动态获取系统的路径分隔符,以确保代码在不同平台上的一致性。 3. **XML解析库**:Java标准库提供了DOM(Document Object Model)、SAX(Simple API for XML)和StAX...

    sql 输出xml

    在将多个值拼接成一个字符串时,经常需要使用`STUFF`函数来清除字符串前的分隔符。 `DISTINCT`关键字用于去除查询结果中的重复行,确保每个值只出现一次。这对于输出格式化好的数据很重要,因为它可以避免在输出...

    读取MSN聊天记录(XML文件)的VB6源码

    在IT行业中,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,它具有良好的结构化和可扩展性,使得数据易于解析和处理。本篇将详细讲解如何使用VB6(Visual Basic 6)来读取并处理MSN聊天记录的...

    txt_to_xml.jar包

    比如,如果txt文件是以固定的分隔符(如逗号、制表符)区分数据项,那么可以设定相应的分隔符规则。此外,对于有固定格式的txt文件,如日志文件,可能还需要指定字段映射,确保XML标签的正确生成。 在使用txt_to_...

    as 3.0读取XML

    这个函数将数组中的每一项连接成字符串,每行之间用换行符分隔,然后设置文本框的`text`属性为这个字符串。这样,XML文件的每行内容就会在文本框中显示出来。 总结一下,AS 3.0中读取XML文件主要包括以下步骤: 1. ...

    TXT转化XML

    1. **解析TXT文件**:首先,需要读取TXT文件的内容,分析其中的数据模式,如行和列的分隔符,确定数据的结构。 2. **定义XML架构(XSD)**:根据TXT文件中的数据结构,创建一个XML Schema Definition (XSD) 文件,...

    C# TXT转换xml

    这可能涉及查找特定分隔符、正则表达式匹配或者定义一套规则来识别数据元素。 3. **创建XML结构**:在理解了TXT文件的数据结构后,可以使用`System.Xml`命名空间的`XmlDocument`或`XDocument`类来构建XML树。每个...

    Excel_VBA网络、XML、WMI以及API扩充.docx

    VBA提供了设置小数点和千位分隔符的方法,例如 `Application.DecimalSeparator` 和 `Application.ThousandsSeparator`,以便正确显示和处理数据。 这些知识点的掌握,将使Excel VBA开发者能够构建更强大、更高效的...

    sql 多行合并某一列字符串拼接的示例

    在SQL中,将多行数据合并为一行,尤其是在某一列进行字符串拼接,是一项常见的需求。这通常用于汇总数据、创建报表或者为了分析目的而整合信息。本文将深入探讨如何利用SQL实现多行数据的合并,特别关注字符串拼接的...

    EAST数据采集标准化接口规范终稿.pdf

    数据项分隔符是指在数据采集文件中,用于分隔数据项的符号。常见的数据项分隔符有逗号、分号、Tab键等。 四、数据文件准备 数据文件准备是指在数据采集前,需要对数据进行的准备工作。例如,对数据进行清洁、转换...

    Java课设-XML文件管理系统.zip

    这可能涉及到分隔符的识别、数据的解析以及对应XML标签的生成。反之,从XML到TXT的转换则需要解析XML结构,将数据按特定格式输出成TXT文件。 在实现这个系统时,可能需要以下几个步骤: 1. 读取TXT文件内容,使用...

    work2_分割字符串_字符串处理_源码.zip

    在IT行业中,字符串处理是一项基础且重要的技能,尤其在编程语言中。"work2_分割字符串_字符串处理_源码.zip" 这个文件名暗示了我们即将探讨的是关于字符串分割与处理的源代码示例。字符串处理通常涉及到对文本数据...

    完整版读写多字符串值.rar

    在编程中,读操作通常是指从文件、数据库或其他数据源中获取字符串数据,而写操作则是将字符串数据保存到这些位置。这通常涉及到输入/输出(I/O)操作,比如文件I/O或网络I/O。 字符串在计算机中是以字节序列的形式...

    从格式化的文本文件转换为xml文件

    2. **解析TXT数据**:根据分隔符(例如逗号或制表符)分割每行,将数据提取到适当的Java对象中。可以创建一个简单的类,包含与TXT文件格式匹配的属性。 3. **构建XML文档**:使用`javax.xml.parsers....

    Advanced Flat File to MII XML Document Custom Action Blocks.pdf

    由于平面文件存在多种变体,包括不同的“行结束”字符和值分隔符(即“分隔符”),这可能成为一项具有挑战性的任务。因此,引入了平面文件到 XML 文档转换操作来消除集成过程中的不确定性与复杂性,并简化数据处理...

    EXCEL数据导入EXCEL数据导入

    在Excel中,数据导入是一项非常重要的功能,它允许用户从外部源快速有效地引入大量数据,以便进行分析、处理和管理。下面将详细讲解Excel数据导入的相关知识点。 1. 数据源:Excel可以导入的数据源多种多样,包括...

    基于python爬虫数据处理(详解)

    在SQL中,`REPLACE()`函数可以替换字符串中的指定子串,`SUBSTRING_INDEX()`可以截取包含分隔符的字符串。 5. 条件判断: Python中的条件判断通常用`if-elif-else`语句实现,而在SQL中,`CASE WHEN ... THEN ... ...

Global site tag (gtag.js) - Google Analytics