加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

应用掩码在SQL Server查询/视图中格式化字符串

发布时间:2020-12-12 06:25:17 所属栏目:MsSql教程 来源:网络整理
导读:是否有一种巧妙的方法将掩码应用于SQL Server查询中的字符串? 我有两个表,一个用电话号码存储为varchar,没有文字0155567890和一个电话类型,它有一个掩码用于该电话号码类型:(##)#### #### 返回字符串(对于合并文档)的最佳方法是什么,以便查询返回完全格式化
是否有一种巧妙的方法将掩码应用于SQL Server查询中的字符串?

我有两个表,一个用电话号码存储为varchar,没有文字0155567890和一个电话类型,它有一个掩码用于该电话号码类型:(##)#### ####

返回字符串(对于合并文档)的最佳方法是什么,以便查询返回完全格式化的电话号码:

(01) 5556 7890

解决方法

我也需要这个,并且由于Sjuul的伪代码,我能够创建一个函数来执行此操作.
CREATE FUNCTION [dbo].[fx_FormatUsingMask] 
(
    -- Add the parameters for the function here
    @input nvarchar(1000),@mask nvarchar(1000)
)
RETURNS nvarchar(1000)
AS
BEGIN
    -- Declare the return variable here
    DECLARE @result nvarchar(1000) = ''
    DECLARE @inputPos int = 1
    DECLARE @maskPos int = 1
    DECLARE @maskSign char(1) = ''

    WHILE @maskPos <= Len(@mask)
    BEGIN
        set @maskSign = substring(@mask,@maskPos,1)

        IF @maskSign = '#'
        BEGIN
            set @result = @result + substring(@input,@inputPos,1)
            set @inputPos += 1
            set @maskPos += 1
        END
        ELSE
        BEGIN
            set @result = @result + @maskSign
            set @maskPos += 1
        END
    END
    -- Return the result of the function
    RETURN @result

END

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读