回答
ISNUMERIC返回一個字符串是否是數字,但對於非整數返回true的功能。
所以,你可以使用:
WHERE ISNUMERIC(str) AND str NOT LIKE '%.%' AND str NOT LIKE '%e%' AND str NOT LIKE '%-%'
見this:
CREATE Function dbo.IsInteger(@Value VarChar(18))
Returns Bit
As
Begin
Return IsNull(
(Select Case When CharIndex('.', @Value) > 0
Then Case When Convert(int, ParseName(@Value, 1)) <> 0
Then 0
Else 1
End
Else 1
End
Where IsNumeric(@Value + 'e0') = 1), 0)
End
斯坦達特T-SQL函數ISNUMERIC(表達) 確定表達式是否爲有效的數值類型。
確實有效的數字類型,雖然它不關心整數,小數,金錢還是浮點數。 OP顯式詢問了整數。 – Joey 2010-01-21 13:49:06
您可以使用LIKE操作:
使用'LTRIM(RTRIM(str))NOT LIKE'%[^ 0-9]%''來允許數字周圍出現空格。 – sparebytes 2015-10-07 17:41:59
這是一個有點棘手保證值將符合4字節整數。
由於您使用的是2005年 - 一種方法是嘗試轉換try/catch塊內的值。這將是確保它實際上是一個整數的最好方法。當然,您需要根據您的要求處理不在抓塊中的箱子。
另一種方式只是測試只對 「數字」 是這樣的:
其中strVal不LIKE '%[^ 0-9]%'
這將錯過-25。以及允許'99999999999999999999' 因此,您可能需要在此方法中包含其他條件。
即使原來的海報是指SQL 2005,我發現在2008 r2直where isnumeric(string)
導致錯誤4145非布爾類型。要解決這一點:where isnumeric(string) = 1
使用〜(CAST(PATINDEX( '%[^ 0-9]%',值)作爲BIT))處理所有的字符
- 1. 是否有可能只獲得一個字符串的第一個字符?
- 2. 如何確定一個字符串是否是ksh的數字
- 3. C#:如何獲得一個字符串的第一個字符?
- 4. 判斷一個字符串是否是另一個子字符
- 5. 如何檢查一個對象是否是一個字符串?
- 6. 如何找出字符串的第一個字符是否是數字?
- 7. 如何檢查字符串中的第一個字母是否是數字
- 8. 如何獲得一個字符串在ObjectiveC中的另一個字符串?
- 9. 獲得一個字符串
- 10. 獲得一個字符串
- 11. 給定一個字符串,如何檢查前幾個字符是否是另一個字符串? C++
- 12. 如何獲得REGEXP_SUBSTR一個字符串
- 13. 如何檢查一個字符串是否包含一個子字符串 - mysql
- 14. 如何檢查一個字符串是否等於另一個字符串?
- 15. 如何找到一個字符串是否包含在另一個字符串
- 16. 如何識別一個字符串是否是一個數字,如果是,將其轉換爲一個int? (C++)
- 17. 如何檢查一個字符串是否是純字母?
- 18. Java,如何檢查一個字符串是否包含數字?
- 19. 當是一個字符串不是一個字符串
- 20. 確定一個字符串是不是另一個字符串
- 21. 確定NSString的第一個字符是否是一個數字
- 22. vb.net如何檢查一個字符串是否有某個字
- 23. 如何得到一個數字一個字符串的PHP
- 24. 如何確定一個字符串是否是C#中的數字
- 25. C - 檢查字符串是否是另一個字符串的子字符串
- 26. 找到一個字符串是否是SML中另一個字符串的子字符串NJ
- 27. 如何檢查一個ruby字符串是一個實際的字符串還是一個blob數據如image
- 28. 檢查一個字符串是否是一個有效的數字:ArrayIndexOutOfBoundsException異常
- 29. 檢查一個字符串是否全部是數字和10個字符長
- 30. 測試一個字符串是否包含另一個字中的任何字
什麼是一個像''£串''或''0d0''? 'ISNUMERIC'仍然會返回'1'。 – 2014-03-13 13:49:44
我認爲按字符排除字符並沒有幫助,因爲我們可以有多個組合。例如:特殊字符,字母等 – Dev 2017-04-10 10:47:45