如何检测字符串是不是至少包含一个数字?

Posted

技术标签:

【中文标题】如何检测字符串是不是至少包含一个数字?【英文标题】:How to detect if a string contains at least a number?如何检测字符串是否至少包含一个数字? 【发布时间】:2010-04-01 07:32:33 【问题描述】:

SQL server 2005中如何检测字符串是否至少包含一个数字(数字)?

【问题讨论】:

你的意思是一个子字符串,还是一个大于或等于指定值的数字? 【参考方案1】:

使用这个:

SELECT * FROM Table WHERE Column LIKE '%[0-9]%'

MSDN - LIKE (Transact-SQL)

【讨论】:

我以为MSSQL中的方括号转义了,比如LIKE '[_]'?也出于兴趣,您在哪里找到了这些信息? 不,这确实有效,我已经做了很多年了,不知道我第一次看到它是在哪里...... @CodeBlend 方括号用于在 outside 字符串时进行转义,在 inside 字符串时用于分隔模式。 这里解释了 LIKE 语句中的方括号。 msdn.microsoft.com/en-us/library/… 请注意,您必须使用如图所示的 [0-9] 而不是 Regex 简写 [\d] 来表示数字。为我工作 - 投票。【参考方案2】:
DECLARE @str AS VARCHAR(50)
SET @str = 'PONIES!!...pon1es!!...p0n1es!!'

IF PATINDEX('%[0-9]%', @str) > 0
   PRINT 'YES, The string has numbers'
ELSE
   PRINT 'NO, The string does not have numbers' 

【讨论】:

为什么选择 PATINDEX,而不是简单的 LIKE?【参考方案3】:

最简单的方法是使用LIKE

SELECT CASE WHEN 'FDAJLK' LIKE '%[0-9]%' THEN 'True' ELSE 'False' END;  -- False
SELECT CASE WHEN 'FDAJ1K' LIKE '%[0-9]%' THEN 'True' ELSE 'False' END;  -- True

【讨论】:

【参考方案4】:
    您可以使用基于 CLR 的 UDF 或使用搜索列上的所有数字执行 CONTAINS 查询。

【讨论】:

以上是关于如何检测字符串是不是至少包含一个数字?的主要内容,如果未能解决你的问题,请参考以下文章

C++ 检查字符串是不是包含至少 1 个数字和 1 个字母

如何断言包含至少一个数字的字符串?

如何验证密码是不是包含 X 大写字母和 Y 数字?

js如何判断字符是中文,英文,数字还是字符

如何检查一个对象是不是至少包含一个键,其值包含 JavaScript 中的子字符串?

包含至少 8 个字符和至少 1 个非字母数字字符的密码的正则表达式