2010-04-01 13 views

risposta

75

Utilizzare questa:

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

MSDN - LIKE (Transact-SQL)

+0

Ho pensato che le parentesi quadre sfuggite in MSSQL, come 'LIKE '[_]''? Anche per interesse dove hai trovato questa informazione? – Coops

+1

No, funziona, l'ho fatto per anni e non ho idea di dove l'ho visto per la prima volta ... – cjk

+1

@CodeBlend parentesi quadre sono usate per l'escape quando * al di fuori * una stringa e per delimitare i pattern quando * inside * una stringa. –

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

Perché PATINDEX, piuttosto che un semplice LIKE? – gbn

+0

Ponies Lol ...... – Tsaukpaetra

0
  1. Si potrebbe utilizzare le UDF basate CLR o fare A contiene query utilizzando tutte le cifre della colonna di ricerca.
1

Il metodo più semplice è quello di utilizzare 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 
Problemi correlati