SQL Server 2008: so wählen Sie alle Zeilen aus, in denen Feld ist mit Großbuchstaben?
Hier ist, was ich dachte, ich weiß, dass in diesem Feld, das erste Wort wird immer mindestens 2 Zeichen lang sein.
Select *
From Table!
where SUBSTRING(Name, 1, 3) like '[A-Z]'
Aber, dies bringt Sie zurück, nicht Großbuchstaben irgendwelche Ideen?
- Ziemlich sicher, dass
like
ist der groß-und Kleinschreibung - Hängt von der Sortierreihenfolge. Die Standard-Sortierung wird groß- / Kleinschreibung, so dass das Verhalten erhalten Sie, wenn Sie die SQL Server -, Datenbank-oder-Spalte definiert wurde, mit einem groß- / Kleinschreibung Sortierung. Um sicherzustellen, groß-und Kleinschreibung, geben Sie groß- / Kleinschreibung Sortierung:
...where not <some-column> like '%[^A-Z]%' collate SQL_Latin1_General_CP1_CS_AS
. All die üblichen Vorsichtsmaßnahmen bezüglich der Sortierreihenfolge Interaktionen gelten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sollte angemerkt werden, dass dies auch ausschließen, zahlen und Zeichen außerhalb von A-Z. Wenn Sie wollten, nicht-lateinische Großbuchstaben enthalten, die Sie wirklich brauchen, um die Nutzung
Upper
Funktion zusammen mit einerCollate
Prädikat:Test-Skript:
Ergebnisse:
CS
steht für groß-und Kleinschreibung. Sie können diefn_helpcollations
Funktion zu finden, die entsprechende case-sensitive Sortierung.Ausgabe:
Du gehst zu haben, um eine Sortierung auf Ihre Anfrage. Diese ist ein gutes Beispiel dafür, wie es zu tun.
Könnte man nur etwas tun, wie
Wie etwa Tests aktivierte version gegen das original:
Bearbeiten: Wie schon in den Kommentaren das funktioniert nicht, wenn die Sortierung wird groß- /Kleinschreibung ist (es ist standardmäßig glaube ich). Check-out Thomas ' Antwort.
LIKE
Methode hat nicht funktioniert: wegen eines groß- / Kleinschreibung Sortierung, muss wohl in Kraft treten.