Die Sortierung kann auf Serverebene, Datenbankebene, Spaltenebene, Ausdrucksebene und Bezeichnerebene angegeben werden. Für jede davon ist eine andere Methode erforderlich.
Sortierung auf Serverebene
So finden Sie die Sortierung auf Serverebene:
SELECT CONVERT (varchar, SERVERPROPERTY('collation')) AS 'Server Collation';
Dies gibt die Sortierung wie folgt zurück:
Server Collation ---------------------------- SQL_Latin1_General_CP1_CI_AS
Sie können auch sp_helpsort
verwenden gespeicherte Prozedur, um die Standardsortierung für den Server zurückzugeben:
EXECUTE sp_helpsort;
Dies gibt die Sortierung wie folgt zurück:
Server default collation ---------------------------- Latin1-General, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive for Unicode Data, SQL Server Sort Order 52 on Code Page 1252 for non-Unicode Data
Vergleich auf Datenbankebene
Führen Sie die folgende Abfrage aus, um die Sortierung einer bestimmten Datenbank zurückzugeben. Das WHERE
-Klausel können Sie die Ergebnisse auf die Datenbank(en) eingrenzen, an der/denen Sie interessiert sind:
SELECT name, collation_name FROM sys.databases WHERE name = 'Music';
Dies ergibt etwa Folgendes:
name collation_name ----- ---------------------------- Music SQL_Latin1_General_CP1_CI_AS
In diesem Fall haben wir die Datenbank namens Music
angegeben .
Sie können auch DATABASEPROPERTYEX()
verwenden Funktion, um die Standardsortierung für eine Datenbank zurückzugeben:
SELECT DATABASEPROPERTYEX('Music', 'Collation') AS Collation;
Sortierung auf Spaltenebene
Die Sortierung kann auch auf Spaltenebene angegeben werden. Um herauszufinden, welche Sortierung eine bestimmte Spalte verwendet, führen Sie eine Abfrage für sys.columns
aus . So:
SELECT name, collation_name FROM sys.columns WHERE name = N'ArtistName';
Dies ergibt etwa Folgendes:
name collation_name ---------- ---------------------------- ArtistName SQL_Latin1_General_CP1_CI_AS
Zuordnung auf Ausdrucks- und Bezeichnerebene
Sortierung kann auf einen Zeichenfolgenausdruck angewendet werden, um eine Sortierungsumwandlung anzuwenden. Sie können zum Beispiel COLLATE
verwenden -Klausel in einem SELECT
-Anweisung, um die zu verwendende Sortierung anzugeben. So:
USE Music; SELECT ArtistId, ArtistName FROM Artists ORDER BY ArtistName COLLATE Latin1_General_CI_AI;
Diese Sortierung verwendet CI
für case-insensitive und AI
für Akzent-unempfindlich.
Wir könnten das in CS
ändern für Groß- und Kleinschreibung und AS
für akzentsensitiv, und die Abfrageergebnisse können anders sortiert werden (abhängig von den Daten):
USE Music; SELECT ArtistId, ArtistName FROM Artists ORDER BY ArtistName COLLATE Latin1_General_CS_AS;
Auf diese Weise können Sie also die Sortierung überschreiben, die beim Ausführen einer Abfrage auf Datenbank- oder Spaltenebene angewendet wird.