web-dev-qa-db-fra.com

Comment détecter si une chaîne contient au moins un nombre?

Comment détecter si une chaîne contient au moins un nombre (chiffre) dans SQL Server 2005?

45
Manish

Utilisez ceci:

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

MSDN - LIKE (Transact-SQL)

87
cjk
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' 
8
kevchadders

La méthode la plus simple consiste à utiliser 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
1
eksortso
  1. Vous pouvez utiliser des fichiers UDF basés sur le CLR ou effectuer une requête CONTAINS en utilisant tous les chiffres de la colonne de recherche.
0
TrustyCoder