回答

收藏

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]%'
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则