gpt4 book ai didi

sql - 如何将波斯数字转换为 int

转载 作者:行者123 更新时间:2023-12-05 08:14:52 25 4
gpt4 key购买 nike

有一个名为 value 的 nvarchar(100) 列,当用户插入该列时,我需要在触发器中检查下面的代码:

if exists
(
select *
from inserted i
where isnumeric(value)=0
)
begin
rollback transaction
raiserror('when productType is numeric, You have to insert numeric character',18,1)
return
end

但是在以波斯语插入的应用程序界面数字中,所以总是isnumeric(value)=0

例如,如果用户在界面中插入 45,我需要将触发值显示为 45

到目前为止,我使用了CASTCONVERTcollat​​e Persian_100_CI_AI,但我无法得到任何结果。

谢谢。

最佳答案

哪个版本的SQL Server? v2017+ 提供了一个 new function TRANSLATE .

可能有一种更优雅但更实用的方式:

DECLARE @PersianNumber NVARCHAR(100)=N'۴۵';
SELECT CAST(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE
(@PersianNumber,N'۰',N'0'),N'۱',N'1'),N'۲',N'2'),N'۳',N'3'),N'۴',N'4')
,N'۵',N'5'),N'۶',N'6'),N'۷',N'7'),N'۸',N'8'),N'۹',N'9') AS INT);

关于sql - 如何将波斯数字转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49511465/

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