SQL 函数替换非数字值
SQL Function Replace Non-numeric Values
我想做的是创建一个 SQL 函数,它检查一个数字是否有任何非数字字符,如果确实删除它们。但如果数字有 +1234
,则保留它。所以有些数字有 1234
,有些有 +1234
。我不想将 +
添加到所有数字。
下面是我的 SQL 函数:
CREATE FUNCTION[dbo].[fn_NonNumericCharacters] ( @strText varchar(1000) )
RETURNS VARCHAR(1000)
AS
BEGIN
WHILE PATINDEX('%[^+0-9]%', @strText) > 0
BEGIN
SET @strText = STUFF(@strText, PATINDEX('%[^+0-9]%', @strText), 1, '')
END
RETURN @strText
END
我试图用这个函数做的是让它寻找这些字符 ()-,.SPACE .
你怎么看?
存储第一个字符,如果它是 +
,替换 +
,重新追加,return:
CREATE FUNCTION[dbo].[fn_NonNumericCharacters] ( @strText varchar(1000) )
RETURNS VARCHAR(1000)
AS
BEGIN
DECLARE @prefix VARCHAR(1) = CASE WHEN @strText LIKE '+%' THEN '+' ELSE '' END
WHILE PATINDEX('%[^0-9]%', @strText) > 0
SET @strText = STUFF(@strText, PATINDEX('%[^0-9]%', @strText), 1, '')
RETURN @prefix + @strText
END
我想做的是创建一个 SQL 函数,它检查一个数字是否有任何非数字字符,如果确实删除它们。但如果数字有 +1234
,则保留它。所以有些数字有 1234
,有些有 +1234
。我不想将 +
添加到所有数字。
下面是我的 SQL 函数:
CREATE FUNCTION[dbo].[fn_NonNumericCharacters] ( @strText varchar(1000) )
RETURNS VARCHAR(1000)
AS
BEGIN
WHILE PATINDEX('%[^+0-9]%', @strText) > 0
BEGIN
SET @strText = STUFF(@strText, PATINDEX('%[^+0-9]%', @strText), 1, '')
END
RETURN @strText
END
我试图用这个函数做的是让它寻找这些字符 ()-,.SPACE .
你怎么看?
存储第一个字符,如果它是 +
,替换 +
,重新追加,return:
CREATE FUNCTION[dbo].[fn_NonNumericCharacters] ( @strText varchar(1000) )
RETURNS VARCHAR(1000)
AS
BEGIN
DECLARE @prefix VARCHAR(1) = CASE WHEN @strText LIKE '+%' THEN '+' ELSE '' END
WHILE PATINDEX('%[^0-9]%', @strText) > 0
SET @strText = STUFF(@strText, PATINDEX('%[^0-9]%', @strText), 1, '')
RETURN @prefix + @strText
END