2010-04-01 5 views

Répondre

75

Utilisez ceci:

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

MSDN - LIKE (Transact-SQL)

+0

Je pensais que crochets échappés dans MSSQL, tels que 'LIKE '[_]''? Aussi par intérêt où avez-vous trouvé cette information? – Coops

+1

Non cela fonctionne, je le fais depuis des années et je n'ai aucune idée d'où je l'ai vu pour la première fois ... – cjk

+1

@CodeBlend crochets sont utilisés pour échapper lorsque * en dehors d'une chaîne, et pour délimiter des motifs lorsque * à l'intérieur * un string. –

6
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' 
+0

Pourquoi PATINDEX, plutôt qu'un simple LIKE? – gbn

+0

Lol ponies ...... – Tsaukpaetra

0
  1. Vous pouvez utiliser des fonctions définies par CLR ou faire une requête CONTAINS en utilisant tous les chiffres sur la colonne de recherche.
1

La méthode la plus simple est d'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 
Questions connexes