Sortering kan angives på serverniveau, databaseniveau, kolonneniveau, udtryksniveau og identifikatorniveau. Der kræves en anden metode for hver af disse.
Sortering på serverniveau
Sådan finder du sorteringen på serverniveau:
SELECT CONVERT (varchar, SERVERPROPERTY('collation')) AS 'Server Collation';
Dette returnerer sorteringen sådan her:
Server Collation ---------------------------- SQL_Latin1_General_CP1_CI_AS
Du kan også bruge sp_helpsort gemt procedure for at returnere standardsorteringen for serveren:
EXECUTE sp_helpsort;
Dette returnerer sorteringen sådan her:
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
Sortering på databaseniveau
Kør følgende forespørgsel for at returnere sorteringen af en bestemt database. WHERE klausul giver dig mulighed for at indsnævre resultaterne til databasen/de databaser, du er interesseret i:
SELECT
name,
collation_name
FROM sys.databases
WHERE name = 'Music';
Dette resulterer i noget som dette:
name collation_name ----- ---------------------------- Music SQL_Latin1_General_CP1_CI_AS
I dette tilfælde specificerede vi databasen kaldet Music .
Du kan også bruge DATABASEPROPERTYEX() funktion for at returnere standardsorteringen for en database:
SELECT DATABASEPROPERTYEX('Music', 'Collation') AS Collation;
Sortering på kolonneniveau
Sortering kan også angives på kolonneniveau. For at finde ud af, hvilken sortering en specifik kolonne bruger, skal du køre en forespørgsel mod sys.columns . Sådan:
SELECT
name,
collation_name
FROM sys.columns
WHERE name = N'ArtistName';
Dette resulterer i noget som dette:
name collation_name ---------- ---------------------------- ArtistName SQL_Latin1_General_CP1_CI_AS
Sortering af udtryk og identifikatorniveau
Sortering kan anvendes på et tegnstrengudtryk for at anvende en sorteringscast. For eksempel kan du bruge COLLATE klausul i en SELECT sætning for at angive den sortering, der skal bruges. Sådan:
USE Music; SELECT ArtistId, ArtistName FROM Artists ORDER BY ArtistName COLLATE Latin1_General_CI_AI;
Denne sortering bruger CI for store og små bogstaver og AI for accentufølsomme.
Vi kunne ændre det til CS for store og små bogstaver og AS for accentfølsomme, og forespørgselsresultaterne kan sorteres forskelligt (afhængigt af dataene):
USE Music; SELECT ArtistId, ArtistName FROM Artists ORDER BY ArtistName COLLATE Latin1_General_CS_AS;
Så dette giver dig mulighed for at tilsidesætte den sortering, der anvendes på database- eller kolonneniveau, når du kører en forespørgsel.