继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

使用XQuery的nodes()方法实现字符拆分

慕田峪9129951
关注TA
已关注
手记 337
粉丝 200
获赞 993

比如一串字符以某定义符号分隔,现我们需要以定义符号对这串字符进行拆分。可以使用XQuery的nodes()方法来实现。不过Insus.NET把实现的方法写成一个自定义函数,在需要的地方调用即可。

5acf07290001405b00110016.jpgudf_StringSplit SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        Insus.NET
-- Create date: 2012-02-26 00:15:00
-- Description:    Split the string from the delimiter
-- =============================================
CREATE FUNCTION [dbo].[udf_SplitString]
(
    @Value NVARCHAR(MAX),
    @Delimiter CHAR(1)

RETURNS @SplitResult TABLE ([ID] INT IDENTITY(1,1),[WORD] NVARCHAR(MAX))
AS
BEGIN
    DECLARE @xml XML = CAST('<insus>' + REPLACE(@Value,@Delimiter,'</insus><insus>') + '</insus>' AS XML)
    INSERT INTO @SplitResult([WORD]) SELECT n.value('.','NVARCHAR(50)') AS w
    FROM @xml.nodes('/insus') AS E(n)
  RETURN
END

 

应用自定义函数:

SELECT [ID],[WORD] FROM [dbo].[udf_SplitString]('ad;gdf;gdf;gdf;dfsdf',';')

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP