【发布时间】:2013-04-25 02:49:17
【问题描述】:
如何将ISNUMERIC() 函数与sql_variant 数据类型一起使用?
以下代码不起作用
DECLARE @x sql_variant
SET @x = 3
IF ISNUMERIC(@x) = 1
SELECT 'Numeric'
ELSE
SELECT ' NOT'
错误:
消息 8116,第 16 级,状态 1,第 4 行
参数数据类型 sql_variant 对 isnumeric 函数的参数 1 无效。
但是这行得通
IF ISNUMERIC(CAST(@x AS INT)) = 1
如果没有CAST(),有什么办法可以做到这一点
在谷歌上没有找到任何有用的关于这个问题的东西谢谢,我正在使用 SQL Server 2008 R2
【问题讨论】:
-
您是否尝试检查 value 是否为数字,或者 基础数据类型 是否为数字类型?例如,
NVARCHAR'3' 是否应该被视为数字? -
Filip Answer 适用于我现在的情况,但将其称为 @x = '123' 数字仍然没有意义吗?
-
当心,ISNUMERIC() 并不总是像您期望的那样“工作”。 请参阅:simple-talk.com/blogs/2011/01/13/…
标签: sql tsql sql-server-2008-r2