tags:

views:

64

answers:

4

How to detect if a string contains atleast a number (digit) in SQL server 2005?

+6  A: 
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' 
kevchadders
Why PATINDEX, rather than a simple LIKE?
gbn
A: 
  1. You could use CLR based UDFs or do a CONTAINS query using all the digits on the search column.
nitroxn
+1  A: 

Use this:

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

The simplest method is to use 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
eksortso