字符串反转reverse
程序员文章站
2023-04-07 13:41:43
我们有一串字符串,比如: 现想把它反转显示: 此时,你可以写一个方法来处理: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-05-16 -- Update d ......
我们有一串字符串,比如:
declare @source varchar(max)= 'abcdefghijklmnopqrstuvwxyz'
现想把它反转显示:
zyxwvutsrqponmlkjihgfedcba
此时,你可以写一个方法来处理:
set ansi_nulls on go set quoted_identifier on go -- ============================================= -- author: insus.net -- create date: 2019-05-16 -- update date: 2019-05-16 -- description: 反转字符 create function [dbo].[svf_reversestring] ( @source varchar(max) ) returns nvarchar(max) as begin declare @destination varchar(max) = '' while len(@source) > 0 begin if len(@source) = 0 begin set @destination = @source + @destination set @source = '' end else begin set @destination = substring(@source, 1, 1) + @destination set @source = substring(@source, 2, len(@source)) end end return @destination end go
举例运行上面的方法:
哈哈,一切都是白忙,因为microsoft 已经提供有一个现型的方法reverse:
以上不管是哪一个方法,对下面这种情况进行反转,不知是否ok? 字符串以空格为单词进行反转。
因此,得写另外一个方法来处理:
set ansi_nulls on go set quoted_identifier on go -- ============================================= -- author: insus.net -- create date: 2019-05-16 -- update date: 2019-05-16 -- description: 反转函数 create function [dbo].[svf_reverse] ( @source varchar(max) ) returns nvarchar(max) as begin declare @destination varchar(max) = '' while len(@source) > 0 begin if charindex(' ', @source) > 0 begin set @destination = substring(@source, 0, charindex(' ', @source)) + ' ' + @destination set @source = ltrim(rtrim(substring(@source, charindex(' ', @source) + 1, len(@source)))) end else begin set @destination = @source + ' ' + @destination set @source = '' end end return @destination end go
上一篇: 这个唐僧有点点弱小