ITPub博客

首页 > IT职业 > IT生活 > 使用XQuery的nodes()方法实现字符拆分

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

IT生活 作者:sbruan 时间:2021-09-09 09:48:08 0 删除 编辑

比如一串字符以某定义符号分隔,现我们需要以定义符号对这串字符进行拆分。可以使用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('' + REPLACE(@Value,@Delimiter,'') + '' 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',';')

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3657/viewspace-2812641/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-14

  • 博文量
    78
  • 访问量
    615