字符串按顺序重组方法之自定义函数(字符串拆分重组)

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

--  Author : htl258(Tony)

--  Date   : 2010-04-26 08:45:19

--  Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)

--          Jul  9 2008 14:43:34

--          Copyright (c) 1988-2008 Microsoft Corporation

--          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)

--  Blog   : http://blog.csdn.net/htl258

--  Subject: 字符串按顺序重组方法之自定义函数

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

if object_id('f_GetStr') is not null

    drop function f_GetStr

go

create function dbo.f_GetStr(@s varchar(100))

returns varchar(100)

as

begin

    declare @x xml

    select @x='<v>'+replace(@s,',','</v><v>')+'</v>'

    select @s=null

    select @s=isnull(@s+',','')+s

    from (

       select A.x.value('.','varchar(100)')  as s

        from @x.nodes('/v')AS A(x)

        )t

    order by s

    return @s

end

go

 

declare @t table(id int ,s varchar(100))

insert @t values (1,'g,x,z,t')

insert @t values (2,'f,a,x,g')

insert @t values(3,'谁,是,你')

insert @t values(4,'你,是,谁')

insert @t values(5,'5,4,2,8,8')

select *,dbo.f_GetStr(s) as new_s from @t

/*

id          s                    new_s

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

1           g,x,z,t              g,t,x,z

2           f,a,x,g              a,f,g,x

3           谁,是,你             ,,

4           你,是,谁             ,,

5           5,4,2,8,8          2,4,5,8,8

 

(5 行受影响)

*/

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值