ALTER FUNCTION [dbo].[udf_ReplaceArabicNumbers]
(@str NVARCHAR(1000))
RETURNS NVARCHAR(2000)
AS
BEGIN
DECLARE @i INT = 1
WHILE @i<=LEN(@str)
BEGIN
DECLARE @val NVARCHAR(1)
SET @val = SUBSTRING(@str, @i, 1)
DECLARE @newchar NVARCHAR(1)
SET @newchar = CASE(@val)
WHEN N'۱' THEN 1
WHEN N'۲' THEN 2
WHEN N'۳' THEN 3
WHEN N'۴' THEN 4
WHEN N'۵' THEN 5
WHEN N'۶' THEN 6
WHEN N'۷' THEN 7
WHEN N'۸' THEN 8
WHEN N'۹' THEN 9
WHEN N'۰' THEN 0
END
SET @str = REPLACE(@str, @val, @newchar)
SET @i+=1;
END
RETURN @str
END
2条答案
按热度按时间2skhul331#
我试着解决这个问题,在网上搜索后,我得出结论,解决这个问题的最好方法是功能
以及对此函数调用
我指这个网站http://unicode-table.com/en/与
UNICODE
的帮助下,我们可以得到HTML-Code
和使用在我们的计划结果将是
uyhoqukh2#
根据unicode码位数字的属性,您可以使用类似以下的代码:
如果输入字符串只包含数字,并且为了适应bigint,它被限制在4个字符以内,那么这种方法就有效。对于更长的字符串,应该使用WHILE循环来处理每个字符。