2016-04-05 12 views
1

T-SQL nicht Wildcard:T-SQL Wildcard nicht Operator^funktioniert nicht

SELECT * FROM Customers 
WHERE City LIKE 'A[^a]%'; 

Es gibt: 'Aachen'

Also, was die Bedeutung des Operators^ist hier, wird gleiches Ergebnis kommen, wenn verwenden

WHERE City LIKE 'A[a]%'; 

ich weiß, ich 'A[!a]%' verwenden können und arbeiten, ist mein Anliegen, warum dann ^?

+0

Wenn es so etwas nicht in SQL ist, dann sollte es Fehler geben, seltsam :) Siehe den MSDN Link https://msdn.microsoft.com/en-us/library/ms179859.aspx –

+1

Es funktioniert gut auf meiner Datenbank (SQL Server 2014) –

+0

Warum sollte es einen Fehler geben? Vielleicht suchen Sie nach dem Zeichen '^' –

Antwort

0

Von here:

Die Caret -Platzhalterzeichens [^]:

Die Caret Wildcard-Zeichen verwendet wird für jede einzelne Zeichen nicht innerhalb des angegebenen Bereichs [^ ac] zu suchen oder setze [^ abc].

Um alle Mitarbeiter mit einem 3 Zeichen lang Vornamen zu finden, die mit 'Ja' und dem dritten Zeichen beginnt, ist nicht 'n':

SELECT FirstName, MiddleName, LastName 
FROM Person.Person 
WHERE FirstName LIKE 'Ja[^n]' 

enter image description here

Hier ist ein Screenshot Darstellung, dass es wie erwartet funktioniert:

enter image description here

+0

Können Sie nur Ihre Abfrage ausführen und überprüfen Sie das Ergebnis, es funktioniert nicht. –

+0

@Rahul Tripathi: Wie beantwortet das die Frage? Warum wird 'Aachen' abgerufen, wenn das Muster 'LIKE' A [^ a]% 'ist, was Städte mit einem' a 'nach dem Anfangsbuchstaben' A 'ausschließen sollte? –

+0

@ThorstenKettner: - Es funktioniert wie erwartet. Ich habe es gerade auf meinem SQL Server verifiziert und den Screenshot des gleichen angehängt. –

Verwandte Themen