gpt4 book ai didi

SQL Server 的 ISNUMERIC 函数

转载 作者:行者123 更新时间:2023-12-04 00:38:01 24 4
gpt4 key购买 nike

我需要检查 SQL Server 2012 中是否存在数字的列。

这是我的案例代码。

CASE
WHEN ISNUMERIC(CUST_TELE) = 1
THEN CUST_TELE
ELSE NULL
END AS CUSTOMER_CONTACT_NO

但是当 '78603D99'达到值,返回 1这意味着 SQL Server 将此字符串视为数字。

这是为什么?

如何避免此类问题?

最佳答案

不幸的是,ISNUMERIC() SQL Server 中的函数有很多怪癖。它并不完全是错误的,但它很少像人们第一次使用它时所期望的那样。

但是,由于您使用的是 SQL Server 2012,因此您可以使用 TRY_PARSE()功能将做你想做的事。

这将返回 NULL:SELECT TRY_PARSE('7860D399' AS int)
这将返回 7860399SELECT TRY_PARSE('7860399' AS int)
https://msdn.microsoft.com/en-us/library/hh213126.aspx

显然,这适用于 INT 以外的数据类型。也是。您说您要检查一个值是否为数字,但我认为您的意思是 INT .

关于SQL Server 的 ISNUMERIC 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32135878/

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