gpt4 book ai didi

sql - 应用掩码以格式化 SQL Server 查询/ View 中的字符串

转载 作者:行者123 更新时间:2023-12-02 12:24:26 25 4
gpt4 key购买 nike

有没有一种巧妙的方法可以将掩码应用于 SQL Server 查询中的字符串?

我有两个表,一个表的电话号码存储为 varchar,没有文字 0155567890 和一个电话类型,其中包含该电话号码类型的掩码:(##) ## ## ####

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

(01) 5556 7890

最佳答案

正如评论中所指出的,如果在大量行中使用,我下面的原始答案将导致糟糕的性能。 i-one's answer如果考虑性能,则首选。

我也需要这个,感谢 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

关于sql - 应用掩码以格式化 SQL Server 查询/ View 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3546428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com