2016-05-18 13 views
-2

Meine Anforderung ist eine Suche nach einem Spaltenwert wie "beginnt mit C und gefolgt von vier aufeinanderfolgenden Ziffern" mit SQL Server regex.SQL Server Regex Suche

Say my Tabelle enthält folgende Daten:

Id Num 
--- ---- 
1  C1234 
2  C23215 
3  C4321 XYZ 
4  Z1234 
5  C4521 

und Abfrage nur Ergebnisse C1234 und C4521 erhalten.

Ich habe dies select * from Mytable where Num like 'c[0-9][0-9][0-9][0-9]' versucht, aber nicht das gewünschte Ergebnis bekommen.

Bitte helfen Sie mir.

+0

SQL-Server unterstützt Regex nicht. Es ist Patindex. –

+0

Ok, also wie mit 'Patindex' zu erreichen? –

Antwort

0

Es funktioniert gut:

DECLARE @t TABLE (Id INT, Num VARCHAR(MAX)) 
INSERT INTO @t 
VALUES (1, 'C1234'), 
     (2, 'C23215'), 
     (3, 'C4321 XYZ'), 
     (4, 'Z1234'), 
     (5, 'C4521') 

SELECT * 
FROM @t 
WHERE Num LIKE 'c[0-9][0-9][0-9][0-9]' 

Ausgang:

Id Num 
1 C1234 
5 C4521 

Das Problem ist wahrscheinlich haben Sie verwenden, Groß- und Kleinschreibung Sortierung oder c aus einer anderen Sprache Alphabet ist oder Sie einige unsichtbare Zeichen in Strings . Versuchen Sie, in Hauptstadt C und zu ändern, um zu sehen, ob die Länge von C1234 wirklich 5 ist.

+1

Hatte wie gesagt aber kein Ergebnis bekommen. –

+0

Wahrscheinlich haben Sie unsichtbare Zeichen. Siehe bearbeitete Antwort. –

+0

Ich glaube nicht. Kein Ergebnis, null Zeile zurückgegeben. –