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

84

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


你是指子字符串,还是一个数字大于或等于指定值? - Rowland Shaw
5个回答

149

我以为在MSSQL中方括号是转义字符,例如 LIKE '[_]'?另外,你是从哪里找到这个信息的? - Paul C
1
不,这是有效的。我已经这样做了好几年了,也不知道最初是在哪里看到的... - cjk
1
@CodeBlend 方括号用于在字符串之外进行转义,并用于在字符串之内分隔模式。 - Ian Kemp
2
LIKE语句中的方括号在此处有解释。https://msdn.microsoft.com/zh-cn/library/ms179859.aspx?f=255&MSPPError=-2147217396 - NTDLS
请注意,您必须像所示使用[0-9]而不是Regex简写[\d]来表示数字。对我有用-点赞。 - Yogi

13
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? - gbn

1

最简单的方法是使用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

0
  1. 您可以使用基于CLR的UDF或使用搜索列上的所有数字进行CONTAINS查询。

0
其他答案对我没用。 但是这个帮了我:
SELECT * FROM Table WHERE Column SIMILAR TO '%[0-9]%'

在psql中工作


Tanteriiia,这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子。目前还不清楚这如何解决原始问题。如果您认为您的答案有效,请提供足够的细节来解释原因。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接