当前位置: 移动技术网 > IT编程>数据库>MSSQL > 前导或后导字符串

前导或后导字符串

2019年05月11日  | 移动技术网IT编程  | 我要评论

外面的世界伴奏,葛俊琦,黄智贤老婆

根据需求,需要把某一些数字或字符串进行格式化,前导或后导字符串。insus.net把这个功能写成一个自定义函数。需要时,直接使用即可。

 

set ansi_nulls on
go
set quoted_identifier on
go

-- =============================================
-- author:      insus.net
-- create date: 2019-05-10
-- update date: 2019-05-10
-- description: 前导或后导字符
-- =============================================
create function [dbo].[svf_leadingstring]
    (
        @originalcharacter nvarchar(max),
        @expectedlength int,
        @padcharacterstring nvarchar(max),
        @leadingtoright bit
    )
returns nvarchar(max)
as
begin
    declare @rtv nvarchar(max) = @originalcharacter

    if len(isnull(@originalcharacter,'')) < @expectedlength
    begin
        declare @replicatestring nvarchar(max) = replicate(@padcharacterstring, @expectedlength - len(@originalcharacter))
        
        if @leadingtoright = 1        
            set @rtv = @originalcharacter + @replicatestring        
        else        
            set @rtv = @replicatestring + @originalcharacter
    end
              
    return @rtv
end

go

 

举例可以更好说明函数使用如何。

 

--创建临时表,并随机添加一些数据
declare @dumptable as table ([originalcharacter] nvarchar(max))
insert into @dumptable  ([originalcharacter])  values (12)
insert into @dumptable  ([originalcharacter])  values (3456)
insert into @dumptable  ([originalcharacter])  values ('rt')
insert into @dumptable  ([originalcharacter])  values ('gfr')
insert into @dumptable  ([originalcharacter])  values ('345e')
insert into @dumptable  ([originalcharacter])  values (43)
insert into @dumptable  ([originalcharacter])  values (7777)
insert into @dumptable  ([originalcharacter])  values (254687)
insert into @dumptable  ([originalcharacter])  values ('adrf')


--设置自定义函数的参数
declare @expectedlength int = 8, @padcharacterstring nvarchar(max) = '0'


select [originalcharacter],
    [dbo].[svf_leadingstring]([originalcharacter],@expectedlength,@padcharacterstring,0) as [leadingtoleft],
    [dbo].[svf_leadingstring]([originalcharacter],@expectedlength,@padcharacterstring,1) as [leadingtoright] 
from @dumptable

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网