2010-04-01 11 views

Odpowiedz

75

Użyj tego:

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

MSDN - LIKE (Transact-SQL)

+0

Myślałem, że nawiasy kwadratowe uciekły w MSSQL, takie jak 'LIKE '[_]''? Poza tym, gdzie znalazłeś te informacje? – Coops

+1

Nie działa to, robiłem to od lat i nie mam pojęcia, gdzie go pierwszy raz widziałem ... – cjk

+1

Przyjęty nawias kwadratowy @CodeBlend służy do ucieczki, gdy * poza * ciągiem znaków, oraz do wytyczania wzorców, gdy * wewnątrz * ciąg znaków. –

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

Dlaczego PATINDEX, a nie prosty LIKE? – gbn

+0

Koniki Lol ...... – Tsaukpaetra

0
  1. Można użyć CLR UDF oparte lub zrobić ZAWIERA kwerendy przy użyciu wszystkie cyfry w kolumnie wyszukiwania.
1

Najprostszą metodą jest użycie 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 
Powiązane problemy