如何使用ISNUMERIC()
函數和sql_variant
數據類型?使用帶有sql_variant的ISNUMERIC()SQL Server
這下面的代碼不起作用
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_是數字,還是_underlying datatype_是數字類型?例如,'NVARCHAR''3'是否應該被視爲數字? – 2013-04-24 18:23:12
菲利普答案適用於我現在有的情況,但它仍然沒有任何意義,這稱爲@x ='123'數字正確嗎? – 2013-04-24 18:26:40
**小心,ISNUMERIC()並不總是像你期望的那樣「工作」。**見:https://www.simple-talk.com/blogs/2011/01/13/isnumeric-broken-只向上到一個點/ – 2013-04-24 18:53:12