• 欢迎访问交通人网站!
  • 分享一款小游戏:信任的进化
  •    发表于10年前 (2015-11-28)  热点资讯 |   抢沙发  2639 
    文章评分 1 次,平均分 5.0

    在最近的数据处理过程中,遇到了一个多源数据关联的问题。但是由于系统原因,这两个表中相同字段的位数不一样,一个是以固定长度(长度6位)的文本存储,一个是以整数存储(长度1~6位不等)。在C#里面,有String.Padleft函数可以处理这种问题,但可惜的是SQL Server里面没有。

    因为自己对SQL也不是很熟,所以到网上找了一圈,结果找到下面的解决方案:

    PadLeft:

    Create Function PadLeft(@OriginalString varchar(20),@PaddingChar char(1),@TotalLength int)
    Returns Varchar(20) As
    Begin
    Declare @NewString varchar(20)
    Select @NewString = IsNull(Replicate(@PaddingChar,@TotalLength - Len(isnull(@OriginalString ,0))), '') + @OriginalString
    Return @NewString
    End

    PadRight:

    Create Function PadRight(@OriginalString varchar(20),@PaddingChar char(1),@TotalLength int)
    Returns Varchar(20) As
    Begin
    Declare @NewString varchar(20)
    Select @NewString = @OriginalString + IsNull(Replicate(@PaddingChar,@TotalLength - Len(isnull(@OriginalString ,0))), '')
    Return @NewString
    End

    调用如下:

    Select dbo.PadLeft('101', '0', 6) --000101

    Select dbo.PadRight('101', '0', 6) --101000
    参考:学步园

     

    除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/sqlserver-padleft-padright/

    交通人博客是交通人工作室(JTR Studio)建立的交通人系列网站之一,是交通人工作室的主阵地,旨在整合和分享交通行业相关资讯,具体包括但不限于行业新闻、行业动态,以及行业相关规范、书籍、报告和软件等资源。

    发表评论

    表情 格式

    暂无评论

    
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享