Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Sorterar data som returneras av en fråga i SQL Server. Använd den här satsen för att:
Sortera resultatuppsättningen för en fråga efter den angivna kolumnlistan och om du vill kan du begränsa de rader som returneras till ett angivet intervall. Ordningen i vilken rader returneras i en resultatuppsättning garanteras inte om inte en
ORDER BYsats har angetts.Bestäm i vilken ordning rankningsfunktionsvärden ska tillämpas på resultatuppsättningen.
Transact-SQL syntaxkonventioner
Note
ORDER BY stöds inte i SELECT/INTO eller CREATE TABLE AS SELECT (CTAS)-instruktioner i Azure Synapse Analytics eller Analytics Platform System (PDW).
Syntax
Syntax för SQL Server och Azure SQL Database.
ORDER BY order_by_expression
[ COLLATE collation_name ]
[ ASC | DESC ]
[ , ...n ]
[ <offset_fetch> ]
<offset_fetch> ::=
{
OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
[
FETCH { FIRST | NEXT } { integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY
]
}
Syntax för Azure Synapse Analytics and Analytics Platform System (PDW):
[ ORDER BY
{
order_by_expression
[ ASC | DESC ]
} [ , ...n ]
]
Arguments
order_by_expression
Anger en kolumn eller ett uttryck som frågeresultatuppsättningen ska sorteras på. Du kan ange en sorteringskolumn som ett namn eller kolumnalias, eller som ett icke-negativt heltal som representerar kolumnens position i urvalslistan.
Du kan ange flera sorteringskolumner. Kolumnnamn måste vara unika. Sekvensen för sorteringskolumnerna ORDER BY i -satsen definierar organisationen för den sorterade resultatuppsättningen. Resultatuppsättningen sorteras efter den första kolumnen och sedan sorteras den ordnade listan efter den andra kolumnen och så vidare.
Kolumnnamnen ORDER BY som du refererar till i -satsen måste motsvara antingen ett kolumn- eller kolumnalias i urvalslistan eller till en kolumn som definierats i en tabell som anges i FROM -satsen, utan tvetydigheter.
ORDER BY Om satsen refererar till ett kolumnalias från urvalslistan använder du kolumnaliaset på egen hand. Använd inte kolumnaliaset som en del av ett uttryck i ORDER BY -satsen.
Till exempel:
Rätt användning:
SELECT SCHEMA_NAME(schema_id) AS SchemaName FROM sys.objects ORDER BY SchemaName; -- correctFelaktig användning:
SELECT SCHEMA_NAME(schema_id) AS SchemaName FROM sys.objects ORDER BY SchemaName + ''; -- wrong
SORTERA COLLATION_NAME
Anger att ORDER BY åtgärden ska utföras enligt den sortering som du anger i collation_name och inte enligt sortering av kolumnen enligt definitionen i tabellen eller vyn.
Collation_name kan vara antingen ett Windows-sorteringsnamn eller ett SQL-sorteringsnamn. För mer information, se Sortering och Unicode-stöd.
COLLATE gäller endast för kolumner av typen char, varchar, ncharoch nvarchar.
ASC | DESC
Anger att värdena i den angivna kolumnen ska sorteras i stigande eller fallande ordning.
ASC sorterar från det lägsta värdet till det högsta värdet.
DESC sorterar från högsta till lägsta värde.
ASC är standardsorteringsordningen.
NULL värden behandlas som de lägsta möjliga värdena.
OFFSET { integer_constant | offset_row_count_expression } { ROW | RADER }
Gäller för: SQL Server 2012 (11.x) och senare versioner, Azure SQL Database och Azure SQL Managed Instance.
Anger antalet rader som ska hoppa över innan frågan börjar returnera rader från frågeuttrycket. Värdet kan vara en heltalskonstant eller ett uttryck som är större än eller lika med noll.
offset_row_count_expression kan vara en underfråga för variabel, parameter eller konstant skalär. När du använder en underfråga kan den inte referera till några kolumner som definierats i det yttre frågeomfånget. Det kan alltså inte korreleras med den yttre frågan.
ROW och ROWS är synonymer och tillhandahålls för ANSI-kompatibilitet.
I frågekörningsplaner visas värdet för antal förskjutningsrader i frågeoperatorns TOPoffsetattribut.
FETCH { FIRST | NEXT } { integer_constant fetch_row_count_expression | } { ROW | ENDAST RADER }
Gäller för: SQL Server 2012 (11.x) och senare versioner, Azure SQL Database och Azure SQL Managed Instance.
Anger hur många rader som ska returneras när OFFSET satsen har bearbetats. Värdet kan vara en heltalskonstant eller ett uttryck som är större än eller lika med ett.
fetch_row_count_expression kan vara en underfråga för variabel, parameter eller konstant skalär. När du använder en underfråga kan den inte referera till några kolumner som definierats i det yttre frågeomfånget. Det kan alltså inte korreleras med den yttre frågan.
FIRST och NEXT är synonymer och tillhandahålls för ANSI-kompatibilitet.
ROW och ROWS är synonymer och tillhandahålls för ANSI-kompatibilitet.
I frågekörningsplaner visas värdet för antal förskjutningsrader i frågeoperatorns rad- eller toppattributTOP.
Metodtips
Undvik att ange heltal i ORDER BY -satsen som positionella representationer av kolumnerna i urvalslistan. Även om en instruktion som SELECT ProductID, Name FROM Production.Production ORDER BY 2 är giltig kan användarna till exempel ha svårt att förstå den jämfört med att ange det faktiska kolumnnamnet. Dessutom kräver ändringar i urvalslistan, till exempel att ändra kolumnordningen eller lägga till nya kolumner, att ORDER BY satsen ändras för att undvika oväntade resultat.
Använd alltid en SELECT TOP (<n>) sats i en ORDER BY -instruktion. Det här är det enda sättet att förutsäga vilka rader TOP som påverkar. Mer information finns i TOP.
Interoperability
När du använder ORDER BY med en SELECT...INTO -instruktion INSERT...SELECT för att infoga rader från en annan källa ORDER BY garanterar satsen inte att raderna infogas i den angivna ordningen.
Om du använder OFFSET och FETCH i en vy ändras inte vyns uppdateringsbarhetsegenskap.
Limitations
Det finns ingen gräns för antalet kolumner i ORDER BY -satsen. Den totala storleken på kolumnerna som anges i en ORDER BY sats får dock inte överstiga 8 060 byte.
Du kan inte använda kolumner av typen ntext, text, bild, geografi, geometri eller xml i en ORDER BY sats.
Du kan inte ange ett heltal eller en konstant när order_by_expression visas i en rangordningsfunktion. Mer information finns i SELECT - OVER-satsen.
Om du alias ett tabellnamn i FROM -satsen måste du använda aliasnamnet för att kvalificera dess kolumner i ORDER BY -satsen.
Om -instruktionen SELECT innehåller någon av följande satser eller operatorer måste du definiera kolumnnamn och alias som anges i ORDER BY satsen i urvalslistan:
-
UNIONoperatör -
EXCEPToperatör -
INTERSECToperatör SELECT DISTINCT
När -instruktionen innehåller en UNION, EXCEPT, eller INTERSECT -operator måste dessutom den första (vänstra) frågans urvalslista ange kolumnnamnen eller kolumnaliasen.
I en fråga som använder UNIONoperatorerna , EXCEPTeller INTERSECT kan du bara använda ORDER BY i slutet av -instruktionen. Den här begränsningen gäller endast när du anger UNION, EXCEPToch INTERSECT i en fråga på den översta nivån och inte i en underfråga. Se avsnittet Exempel.
Satsen ORDER BY är inte giltig i vyer, infogade funktioner, härledda tabeller och underfrågor, såvida du inte också anger antingen TOP eller OFFSET och FETCH -satser. När du använder ORDER BY i dessa objekt används satsen endast för att fastställa de rader som returneras av TOP satsen eller OFFSETFETCH satserna.
ORDER BY Satsen garanterar inte ordnade resultat när dessa konstruktioner efterfrågas, såvida inte ORDER BY även anges i själva frågan.
OFFSET och FETCH stöds inte i indexerade vyer eller i en vy som definieras med hjälp CHECK OPTION av -satsen.
OFFSET och FETCH kan användas i alla frågor som tillåter TOP och ORDER BY med följande begränsningar:
Satsen
OVERstöderOFFSETinte ochFETCH.Du kan inte ange
OFFSETochFETCHdirekt iINSERT,UPDATE,MERGEochDELETE-instruktioner, men du kan ange dem i en underfråga som definierats i dessa instruktioner. I -instruktionenINSERT INTO SELECTkan du till exempel angeOFFSETochFETCHi -instruktionenSELECT.I en fråga som använder
UNION,EXCEPTellerINTERSECToperatorer, kan endast den sista frågan som anger ordningen på frågeresultatet angeOFFSETochFETCH.Du kan inte kombinera
TOPmedOFFSETochFETCHi samma frågeuttryck (i samma frågeomfång).
Använd OFFSET och FETCH för att begränsa de rader som returneras
OFFSET Använd -satserna och FETCH i stället för TOP -satsen för att implementera en frågeväxlingslösning och begränsa antalet rader som skickas till ett klientprogram.
Om du använder OFFSET och FETCH som växlingslösning måste du köra frågan en gång för varje sida med data som returneras till klientprogrammet. Om du till exempel vill returnera resultatet av en fråga i steg om 10 rader måste du köra frågan en gång för att returnera raderna 1 till 10 och sedan köra frågan igen för att returnera raderna 11 till 20 och så vidare. Varje fråga är oberoende och inte relaterad till varandra på något sätt. Det här villkoret innebär att klientprogrammet, till skillnad från att använda en markör där frågan körs en gång och tillståndet underhålls på servern, ansvarar för spårningstillståndet. För att uppnå stabila resultat mellan frågebegäranden med och OFFSETFETCHmåste följande villkor uppfyllas:
De underliggande data som frågan använder ändras inte. Det innebär antingen att frågan inte uppdaterar raderna eller att alla begäranden om sidor från frågan körs i en enda transaktion med antingen ögonblicksbild eller serialiserbar transaktionsisolering. Mer information om dessa transaktionsisoleringsnivåer finns i ANGE TRANSAKTIONSISOLERINGSNIVÅ.
ORDER BYSatsen innehåller en kolumn eller kombination av kolumner som garanterat är unika.
Se exemplet Kör flera frågor i en enda transaktion i avsnittet Exempel .
Om konsekventa körningsplaner är viktiga i växlingslösningen OPTIMIZE FOR bör du överväga att använda frågetipset för parametrarna OFFSET och FETCH . Se Ange uttryck för OFFSET- och FETCH-värden i avsnittet Exempel . Mer information om OPTIMIZE FORfinns i Frågetips.
Examples
Kodexemplen i den här artikeln använder AdventureWorks2025- eller AdventureWorksDW2025-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.
| Category | Aktuella syntaxelement |
|---|---|
| Grundläggande syntax | ORDER BY |
| Ange stigande och fallande ordning |
DESC eller ASC |
| Ange en sortering | COLLATE |
| Ange en villkorsstyrd ordning |
CASE uttryck |
| Använda ORDER BY i en rangordningsfunktion | Rankningsfunktioner |
| Begränsa antalet rader som returneras |
OFFSET och FETCH |
| Använda ORDER BY med UNION, EXCEPT och INTERSECT | UNION |
Grundläggande syntax
Exempel i det här avsnittet visar de grundläggande funktionerna i ORDER BY-satsen med hjälp av den minsta obligatoriska syntaxen.
A. Ange en enskild kolumn som definierats i urvalslistan
I följande exempel ordnas resultatet som anges av den numeriska ProductID kolumnen. Eftersom du inte anger någon sorteringsordning använder frågan standardordningen stigande.
USE AdventureWorks2025;
GO
SELECT ProductID,
Name
FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY ProductID;
B. Ange en kolumn som inte har definierats i urvalslistan
I följande exempel ordnas resultatet som anges av en kolumn som väljlistan inte innehåller, men FROM satsen anger den tabell som innehåller kolumnen.
USE AdventureWorks2025;
GO
SELECT ProductID,
Name,
Color
FROM Production.Product
ORDER BY ListPrice;
C. Ange ett alias som sorteringskolumn
I följande exempel anges kolumnaliaset SchemaName som sorteringsordningskolumnen.
USE AdventureWorks2025;
GO
SELECT name,
SCHEMA_NAME(schema_id) AS SchemaName
FROM sys.objects
WHERE type = 'U'
ORDER BY SchemaName;
D. Ange ett uttryck som sorteringskolumn
I följande exempel används ett uttryck som sorteringskolumn. Uttrycket definieras med hjälp DATEPART av funktionen för att sortera resultatuppsättningen efter det år då anställda anställdes.
USE AdventureWorks2025;
GO
SELECT BusinessEntityID,
JobTitle,
HireDate
FROM HumanResources.Employee
ORDER BY DATEPART(year, HireDate);
Ange stigande och fallande sorteringsordning
A. Ange en fallande ordning
I följande exempel sorteras resultatet som anges av den numeriska kolumnen ProductID i fallande ordning.
USE AdventureWorks2025;
GO
SELECT ProductID,
Name
FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY ProductID DESC;
B. Ange en stigande ordning
I följande exempel sorteras resultatet som anges av Name kolumnen i stigande ordning. Tecknen sorteras alfabetiskt, inte numeriskt. Det vill säga 10 sorterar före 2.
USE AdventureWorks2025;
GO
SELECT ProductID,
Name
FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY Name ASC;
C. Ange både stigande och fallande ordning
I följande exempel ordnas resultatet som anges med två kolumner. Frågeresultatuppsättningen sorteras först i stigande ordning FirstName efter kolumnen och sorteras sedan i fallande ordning LastName efter kolumnen.
USE AdventureWorks2025;
GO
SELECT LastName,
FirstName
FROM Person.Person
WHERE LastName LIKE 'R%'
ORDER BY FirstName ASC, LastName DESC;
Ange en sortering
I följande exempel visas hur du kan ändra i vilken ordning frågeresultatet returneras om du anger en sortering i ORDER BY -satsen. En tabell skapas som innehåller en kolumn som definieras med hjälp av en skiftlägeskänslig, dekorkänslig sortering. Värden infogas med olika skiftläges- och accentskillnader. Eftersom en sortering inte anges i ORDER BY -satsen använder den första frågan sortering av kolumnen när värdena sorteras. I den andra frågan anges en skiftlägeskänslig, dekorkänslig sortering i ORDER BY -satsen, som ändrar ordningen i vilken raderna returneras.
USE tempdb;
GO
CREATE TABLE #t1
(
name NVARCHAR (15) COLLATE Latin1_General_CI_AI
);
INSERT INTO #t1
VALUES (N'Sánchez'),
(N'Sanchez'),
(N'sánchez'),
(N'sanchez');
-- This query uses the collation specified for the column 'name' for sorting.
SELECT name
FROM #t1
ORDER BY name;
-- This query uses the collation specified in the ORDER BY clause for sorting.
SELECT name
FROM #t1
ORDER BY name COLLATE Latin1_General_CS_AS;
Ange en villkorsstyrd ordning
I följande exempel används CASE uttrycket i en ORDER BY -sats för att villkorligt fastställa sorteringsordningen för raderna baserat på ett angivet kolumnvärde. I det första exemplet utvärderas värdet i SalariedFlag kolumnen i HumanResources.Employee tabellen. Anställda som har SalariedFlag värdet 1 returneras i ordning i fallande BusinessEntityID ordning. Anställda som har SalariedFlag värdet 0 returneras i ordning i BusinessEntityID stigande ordning. I det andra exemplet sorteras resultatuppsättningen efter kolumnen TerritoryName när kolumnen CountryRegionName är lika med "USA" och efter CountryRegionName för alla andra rader.
SELECT BusinessEntityID,
SalariedFlag
FROM HumanResources.Employee
ORDER BY
CASE SalariedFlag
WHEN 1 THEN BusinessEntityID
END DESC,
CASE
WHEN SalariedFlag = 0 THEN BusinessEntityID
END;
SELECT BusinessEntityID,
LastName,
TerritoryName,
CountryRegionName
FROM Sales.vSalesPerson
WHERE TerritoryName IS NOT NULL
ORDER BY
CASE CountryRegionName
WHEN 'United States' THEN TerritoryName ELSE CountryRegionName
END;
Använda ORDER BY i en rangordningsfunktion
I följande exempel används ORDER BY -satsen i rankningsfunktionerna ROW_NUMBER, RANK, DENSE_RANKoch NTILE.
USE AdventureWorks2025;
GO
SELECT p.FirstName,
p.LastName,
ROW_NUMBER() OVER (ORDER BY a.PostalCode) AS "Row Number",
RANK() OVER (ORDER BY a.PostalCode) AS "Rank",
DENSE_RANK() OVER (ORDER BY a.PostalCode) AS "Dense Rank",
NTILE(4) OVER (ORDER BY a.PostalCode) AS "Quartile",
s.SalesYTD,
a.PostalCode
FROM Sales.SalesPerson AS s
INNER JOIN Person.Person AS p
ON s.BusinessEntityID = p.BusinessEntityID
INNER JOIN Person.Address AS a
ON a.AddressID = p.BusinessEntityID
WHERE TerritoryID IS NOT NULL
AND SalesYTD <> 0;
Begränsa antalet rader som returneras
Gäller för: SQL Server 2012 (11.x) och senare versioner, Azure SQL Database och Azure SQL Managed Instance.
I följande exempel används OFFSET och FETCH begränsas antalet rader som returneras av en fråga.
A. Ange heltalskonstanter för OFFSET- och FETCH-värden
I följande exempel anges en heltalskonstant som värdet för OFFSET - och-satserna FETCH . Den första frågan returnerar alla rader sorterade efter kolumnen DepartmentID. Jämför resultaten som returneras av den här frågan med resultatet av de två frågorna som följer den. Nästa fråga använder -satsen OFFSET 5 ROWS för att hoppa över de första fem raderna och returnera alla återstående rader. Den sista frågan använder -satsen OFFSET 0 ROWS för att börja med den första raden och använder FETCH NEXT 10 ROWS ONLY sedan för att begränsa de rader som returneras till 10 rader från den sorterade resultatuppsättningen.
USE AdventureWorks2025;
GO
-- Return all rows sorted by the column DepartmentID.
SELECT DepartmentID,
Name,
GroupName
FROM HumanResources.Department
ORDER BY DepartmentID;
-- Skip the first 5 rows from the sorted result set and return all remaining rows.
SELECT DepartmentID,
Name,
GroupName
FROM HumanResources.Department
ORDER BY DepartmentID OFFSET 5 ROWS;
-- Skip 0 rows and return only the first 10 rows from the sorted result set.
SELECT DepartmentID,
Name,
GroupName
FROM HumanResources.Department
ORDER BY DepartmentID OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY;
B. Ange variabler för OFFSET- och FETCH-värden
I följande exempel deklareras variablerna @RowsToSkip och @FetchRows och dessa variabler anges i OFFSET - och-satserna FETCH .
USE AdventureWorks2025;
GO
-- Specifying variables for OFFSET and FETCH values
DECLARE @RowsToSkip AS TINYINT = 2,
@FetchRows AS TINYINT = 8;
SELECT DepartmentID,
Name,
GroupName
FROM HumanResources.Department
ORDER BY DepartmentID ASC OFFSET @RowsToSkip ROWS
FETCH NEXT @FetchRows ROWS ONLY;
C. Ange uttryck för OFFSET- och FETCH-värden
I följande exempel används uttrycket @StartingRowNumber - 1 för att ange OFFSET värdet och uttrycket @EndingRowNumber - @StartingRowNumber + 1 för att ange FETCH värdet. Dessutom anges frågetipset , OPTIMIZE FOR. Använd det här tipset om du vill ange ett visst värde för en lokal variabel när frågan kompileras och optimeras. Värdet används endast under frågeoptimering och inte under frågekörningen. Mer information finns i Frågetips.
USE AdventureWorks2025;
GO
-- Specifying expressions for OFFSET and FETCH values
DECLARE @StartingRowNumber AS TINYINT = 1,
@EndingRowNumber AS TINYINT = 8;
SELECT DepartmentID,
Name,
GroupName
FROM HumanResources.Department
ORDER BY DepartmentID ASC OFFSET @StartingRowNumber - 1 ROWS
FETCH NEXT @EndingRowNumber - @StartingRowNumber + 1 ROWS ONLY
OPTION (OPTIMIZE FOR (@StartingRowNumber = 1, @EndingRowNumber = 20));
D. Ange en konstant skalär underfråga för OFFSET- och FETCH-värden
I följande exempel används en konstant skalär underfråga för att definiera värdet för FETCH -satsen. Underfrågan returnerar ett enda värde från kolumnen PageSize i tabellen dbo.AppSettings.
-- Specifying a constant scalar subquery
USE AdventureWorks2025;
GO
CREATE TABLE dbo.AppSettings
(
AppSettingID INT NOT NULL,
PageSize INT NOT NULL
);
INSERT INTO dbo.AppSettings
VALUES (1, 10);
DECLARE @StartingRowNumber AS TINYINT = 1;
SELECT DepartmentID,
Name,
GroupName
FROM HumanResources.Department
ORDER BY DepartmentID ASC
OFFSET @StartingRowNumber ROWS
FETCH NEXT (SELECT PageSize
FROM dbo.AppSettings
WHERE AppSettingID = 1) ROWS ONLY;
E. Köra flera frågor i en enda transaktion
I följande exempel visas en metod för att implementera en växlingslösning som säkerställer att stabila resultat returneras i alla begäranden från frågan. Frågan körs i en enda transaktion med hjälp av ögonblicksbildisoleringsnivån, och kolumnen som anges i ORDER BY -satsen garanterar kolumn unikhet.
USE AdventureWorks2025;
GO
-- Ensure the database can support the snapshot isolation level set for the query.
IF (SELECT snapshot_isolation_state
FROM sys.databases
WHERE name = N'AdventureWorks2025') = 0
ALTER DATABASE AdventureWorks2025
SET ALLOW_SNAPSHOT_ISOLATION ON;
-- Set the transaction isolation level to SNAPSHOT for this query.
SET TRANSACTION ISOLATION LEVEL SNAPSHOT;
-- Beginning the transaction.
BEGIN TRANSACTION;
-- Declare and set the variables for the OFFSET and FETCH values.
DECLARE @StartingRowNumber AS INT = 1,
@RowCountPerPage AS INT = 3;
-- Create the condition to stop the transaction after all rows have been returned.
WHILE (SELECT COUNT(*)
FROM HumanResources.Department) >= @StartingRowNumber
BEGIN
-- Run the query until the stop condition is met.
SELECT DepartmentID,
Name,
GroupName
FROM HumanResources.Department
ORDER BY DepartmentID ASC OFFSET @StartingRowNumber - 1 ROWS
FETCH NEXT @RowCountPerPage ROWS ONLY;
-- Increment @StartingRowNumber value.
SET @StartingRowNumber = @StartingRowNumber + @RowCountPerPage;
CONTINUE;
END
COMMIT TRANSACTION;
Använda ORDER BY med UNION, EXCEPT och INTERSECT
När en fråga använder operatorerna UNION, EXCEPTeller INTERSECT anger du ORDER BY -satsen i slutet av -instruktionen. Frågan sorterar resultatet av de kombinerade frågorna. I följande exempel returneras alla produkter som är röda eller gula och sorterar den här kombinerade listan efter kolumnen ListPrice.
USE AdventureWorks2025;
GO
SELECT Name,
Color,
ListPrice
FROM Production.Product
WHERE Color = 'Red' -- ORDER BY cannot be specified here.
UNION ALL
SELECT Name,
Color,
ListPrice
FROM Production.Product
WHERE Color = 'Yellow'
ORDER BY ListPrice ASC;
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
I följande exempel visas ordningen på ett resultat som anges av den numeriska EmployeeKey kolumnen i stigande ordning.
-- Uses AdventureWorks
SELECT EmployeeKey,
FirstName,
LastName
FROM DimEmployee
WHERE LastName LIKE 'A%'
ORDER BY EmployeeKey;
I följande exempel sorteras ett resultat som anges av den numeriska EmployeeKey kolumnen i fallande ordning.
-- Uses AdventureWorks
SELECT EmployeeKey,
FirstName,
LastName
FROM DimEmployee
WHERE LastName LIKE 'A%'
ORDER BY EmployeeKey DESC;
Följande exempel beställer ett resultat som anges av LastName kolumnen.
-- Uses AdventureWorks
SELECT EmployeeKey,
FirstName,
LastName
FROM DimEmployee
WHERE LastName LIKE 'A%'
ORDER BY LastName;
Följande exempelordningar efter två kolumner. Den här frågan sorterar först i stigande ordning FirstName efter kolumnen och sorterar sedan vanliga FirstName värden i fallande ordning efter LastName kolumnen.
-- Uses AdventureWorks
SELECT EmployeeKey,
FirstName,
LastName
FROM DimEmployee
WHERE LastName LIKE 'A%'
ORDER BY LastName, FirstName;