SQL Server:如何测试字符串是否只有数字字符
技术问答
398 人阅读
|
0 人回复
|
2023-09-14
|
我正在SQL Server
2 f, }& ^: Y# [* \$ \2008中工作。我正在尝试测试字符串(varchar)是否只有数字字符(0-9)。我知道IS_NUMERIC函数会产生虚假结果。(我的数据可能带有$符号,不应通过测试。)因此,我避免使用该功能。 X1 e/ g e* C9 o) ~$ U1 M
我已经有一个测试,看一个字符串是否有任何非数字字符,即
( T# {6 _1 F, I2 J+ [9 Isome_column LIKE '%[^0123456789]%'
) p+ K2 q5 m q; N# Q+ `5 z9 B; W我认为唯一的数字测试将是类似的东西,但是我在空白处。有任何想法吗?
+ f4 e+ d' A' x3 S ( ^9 U E! @1 N! P2 K
解决方案:9 L9 B: X3 H, ^' ~$ E% D
, C$ q) Q3 Z! u. y$ M4 H/ }4 g! h, X9 ?% v; X
8 t% f5 H/ h- D* ^0 K. z5 y4 ?3 |
使用 Not Like
, c. v' ~/ p }4 i$ pwhere some_column NOT LIKE '%[^0-9]%'* O% U) [& P$ g' C) K
演示版: X& g) t8 T" P0 e3 z
declare @str varchar(50)='50'--'asdarew345'
% k5 U) f1 r6 n/ u0 i Sselect 1 where @str NOT LIKE '%[^0-9]%' |
|
|
|
|
|