SQL Server:如何测试字符串是否只有数字字符
技术问答
180 人阅读
|
0 人回复
|
2023-09-14
|
我正在SQL Server
/ M, C; k9 e% ^2 _) X5 |2008中工作。我正在尝试测试字符串(varchar)是否只有数字字符(0-9)。我知道IS_NUMERIC函数会产生虚假结果。(我的数据可能带有$符号,不应通过测试。)因此,我避免使用该功能。8 e1 ]. x# [$ e1 G* y0 V8 l( O
我已经有一个测试,看一个字符串是否有任何非数字字符,即( |. F# ]/ A5 W7 t
some_column LIKE '%[^0123456789]%'
* W: u8 j6 n! n" P" G7 P K我认为唯一的数字测试将是类似的东西,但是我在空白处。有任何想法吗?
; W7 K/ |( z7 a& e& T1 L) c( F % p- ~5 [. T9 L0 q0 Z: I
解决方案:( k4 y) _/ L+ b$ _
: g7 J8 q4 Y- h& Z: b' C/ _+ R1 j( [: u* w
- X$ M9 [9 ~$ g7 z g
使用 Not Like& U$ `0 ^. f5 V7 Y; f& H$ c
where some_column NOT LIKE '%[^0-9]%': D. m$ K; G$ s% {
演示版
# m8 ^1 |& D8 o4 t1 i) Rdeclare @str varchar(50)='50'--'asdarew345'/ x0 o7 M3 p* v' t
select 1 where @str NOT LIKE '%[^0-9]%' |
|
|
|
|
|