是否有一种巧妙的方法将掩码应用于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