order by yan tümcesi (Transact-sql)

Bir sorgu tarafından döndürülen verileri sıralar SQL Server 2012. Bu yan tümcesini kullanın:

  • Bir sorgunun sonuç kümesinde belirtilen sütun liste tarafından sipariş ve isteğe bağlı olarak, belirtilen aralığa döndürülen satırları sınırlayın. İçinde bir sonuç kümesindeki satır döndürülür siparişi garanti bir order by yan tümcesi belirtilmediği sürece.

  • Sırayı belirlemek işlevini sıralama değerler sonuç kümesine uygulanır.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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
    ]
}

Bağımsız değişkenler

  • order_by_expression
    Bir sütun veya sorgu sonuç kümesini sıralamak için ifade belirtir. Sort sütununa bir ad veya sütun diğer adı veya sütunun konumunu seçin listesinde gösteren negatif olmayan bir tamsayı olarak belirtilebilir.

    Birden fazla sıralama sütunlar belirlenebilir. Sütun adlarının benzersiz olması gerekir. order by yan tümcesinde sütunları sıralama organizasyon sıralanan sonuç kümesi tanımlar. Yani sonuç kümesindeki ilk sütuna göre sıralanır ve sonra o sıralı listede ikinci sütuna vb. göre sıralanır.

    order by yan tümcesinde başvurulan sütun adları, ya da bir sütun seçme listesinde veya tanımlı olmayan tüm belirsizlikleri from yan tümcesinde belirtilen tablodaki bir sütun karşılık gelmelidir.

  • HARMANLAcollation_name
    order by işlem belirtilen harmanlama göre gerçekleştirilmesi gerektiğini belirtir collation_nameve değil göre tablo veya Görünüm içinde tanımlanan sütun harmanlama. collation_namebir Windows harmanlaması adı veya sql harmanlaması adı olabilir. Daha fazla bilgi için, bkz. Harmanlama ve Unicode desteği. HARMANLAMA türü sütunlar için uygun char, varchar, nchar, ve nvarchar.

  • ASC | DESC]
    Belirtilen sütun değerleri artan veya azalan düzende sıralanması gerektiğini belirtir. asc en düşük değerden en yüksek değere göre sıralar. desc en yüksek değerden en düşük değere göre sıralar. asc varsayılan sıralama düzeni olduğunu. Boş değerler en düşük olası değerleri olarak kabul edilir.

  • OFFSET { integer_constant | offset_row_count_expression } { ROW | SATIR}
    Sorgu ifade satırları döndürmek başlamadan önce atlanacak satır sayısını belirtir. Değeri bir tamsayı sabiti veya sıfırdan büyük veya sıfıra eşit bir ifade olabilir.

    offset_row_count_expressionbir değişkeni, parametre veya sürekli skalar alt sorgu olabilir. Alt sorgu kullanıldığında, dış sorgu kapsamda tanımlanan sütunları başvuru yapamazsınız. Yani, dış sorgu ile ilişkili olamaz.

    SATIR ve satır eşanlamlılar ve ANSI uyumluluk için sağlanır.

    Mahsup satır sayısı değeri görüntülenir sorgu yürütme planları, ofset özniteliği üst sorgu işleci.

  • FETCH {İLK | NEXT } { integer_constant | fetch_row_count_expression } { ROW | YALNIZCA satır}
    Ofset yan işlendikten sonra dönmek için satır sayısını belirtir. Değeri bir tamsayı sabiti veya sıfırdan büyük veya eşit bir ifade olabilir.

    fetch_row_count_expressionbir değişkeni, parametre veya sürekli skalar alt sorgu olabilir. Alt sorgu kullanıldığında, dış sorgu kapsamda tanımlanan sütunları başvuru yapamazsınız. Yani, dış sorgu ile ilişkili olamaz.

    İLK ve sonraki eş ve ANSI uyumluluk için sağlanır.

    SATIR ve satır eşanlamlılar ve ANSI uyumluluk için sağlanır.

    Mahsup satır sayısı değeri görüntülenir sorgu yürütme planları, satırları veya Top en iyi sorgu İşleç özniteliğini.

En İyi Yöntemler

Tamsayılar olarak sütun seçme listesinde konumsal temsilcilikleri order by yan tümcesinde belirtme kaçının. Örneğin, bir ifadesi gibi olsa da SELECT ProductID, Name FROM Production.Production ORDER BY 2deyimi değil kolayca anlaşılmaktadır diğerleri gerçek sütun adı belirtme ile karşılaştırıldığında tarafından geçerlidir. Ayrıca seçme listesinde sütun sırasını değiştirme veya yeni sütun ekleme gibi değişiklikler beklenmedik sonuçları önlemek için order by yan tümcesi değiştirilmesi gerekir.

SEÇİN bir top (n) ifadesi, her zaman order by yan tümcesini kullanın. Tahmin edilebileceği gibi hangi satırların üst tarafından etkilendiğini belirtmek için tek yol budur. Daha fazla bilgi için, bkz. TOP (Transact-sql).

Birlikte Çalışabilirlik

Bir select… ile kullanıldığındaINTO deyimi başka bir kaynaktan satır eklemek için satırları belirtilen sırada eklenir ve order by yan tümcesi garanti etmez.

Ofset kullanarak ve getirme bir görünümde görünüm güncelleştirilebilme özelliğini değiştirmez.

Sınırlamalar ve Kısıtlamalar

order by yan tümcesindeki sütun sayısı için bir sınır yoktur; Ancak, bir order by yan tümcesinde belirtilen sütunlara toplam boyutunu 8,060 bayt geçemez.

Sütun türü ntext, text, image, geography, geometry, ve xmlbir order by yan tümcesinde kullanılamaz.

Bir tamsayı ya da sabit olamaz ne zaman belirtilen order_by_expression bir sıralama işlevi görünür. Daha fazla bilgi için, bkz. Yan (Transact-sql).

Tablo adı, takma ad from yan tümcesinde ise, yalnızca diğer ad sütunlarından order by yan tümcesinde nitelemek için kullanılır.

select deyimi aşağıdaki yan tümceleri veya işleçleri içeriyorsa, sütun adları ve order by yan tümcesinde belirtilen diğer ad seçme listesinde tanımlanmalıdır:

  • BİRLEŞİM işleci

  • İşleci dışında

  • INTERSECT işleci

  • SELECT DISTINCT

Ayrıca, birleşim deyimi içerir, dışında veya INTERSECT işleci, sütun adları veya sütun diğer adları ilk (soldaki) sorgu seçme listesinde belirtilmesi gerekir.

Birliği kullanan bir sorgu dışında veya INTERSECT işleçleri, order by izin yalnızca deyimi sonunda. UNION, belirtmek dışında bu kısıtlama yalnızca uygulanır ve INTERSECT üst düzey bir sorgu ve sorgu. Aşağıdaki Örnekler bölümüne bakın.

ÜST veya uzaklığı ve getirme tümceleri Ayrıca belirtilmedikçe order by yan tümcesi Gösterim, satır içi işlevler, türetilen tablolar ve alt sorgular da içinde geçerli değil. order by bu nesnelerde kullanıldığında, yan tümcesi yalnızca top yan tümcesi veya uzaklığı ve getirme yan tümceleri tarafından döndürülen satırları belirlemek için kullanılır. Bu yapıları sorgulandığında, order by de sorguda belirtilmediği sürece order by yan tümcesi sipariş edilen sonuç garanti etmez.

Ofset ve dizin oluşturulmuş görünümler veya check OPTION yan tümcesi kullanılarak tanımlanmış bir görünüm getirme desteklenmez.

UZAKLIK ve top ve order by ile aşağıdaki sınırlamalara izin veren herhangi bir sorguda kullanılan getirme olabilir:

  • ÜZERINDEN yan tümcesi ofset desteklemez ve getir.

  • Ofset ve getirme doğrudan INSERT, update, birleştirme ve delete deyimleri belirtilemez, ancak bu ifadeler içinde tanımlanmış bir alt sorgu belirtilebilir. Örneğin, INSERT INTO select deyiminde ofset ve getirme select deyiminde belirtilen.

  • Birliği kullanan bir sorgu dışında veya INTERSECT işleçleri, uzaklık ve getirme yalnızca belirtilebilir son sorgu sorgu sonuçlarının sırasını belirtir.

  • top uzaklığı ile birlikte ve aynı sorgu ifadesinde (aynı kapsamda sorgu) getir.

Döndürülen satırları sınırlamak için uzaklık ve GETIRME kullanma

Bir sorgu sayfalama çözümü uygulamak ve bir istemci uygulaması için gönderilen satır sayısını sınırlamak için top yan tümcesi yerine uzaklık ve getirme yan tümceleri kullanmanızı öneririz.

Bir kez her "sayfa" sorguyu çalıştıran bir disk belleği çözüm gerektirir uzaklık ve getirme kullanarak verileri istemci uygulamasına geri döndü. Örneğin, bir sorgunun sonuçlarını 10 satır artışlarla döndürmek için sorguyu bir kez satırları 1 10 döndürmek ve sonra satır 11 20 vb. dönmek için sorguyu yeniden çalıştırın yürütmelisiniz. Her sorgu, bağımsız ve birbirlerine herhangi bir şekilde ilişkili değildir. Bu sunucu üzerinde bir imleç sorgu bir kez çalıştırılır ve durumu korunur kullanmanın tersine, istemci uygulamanın durumunu izlemek için sorumlu olduğu, anlamına gelir. İstikrarlı sonuçlar arasındaki uzaklık ve getirme kullanarak sorgu isteklerini elde etmek için aşağıdaki koşulların sağlanması gerekir:

  1. Sorgu tarafından kullanılan temel veri değiştirmemeniz gerekir. Başka bir deyişle, sorgu tarafından dokundu satırları güncelleştirilmez veya sorgu sayfaları için yapılan tüm istekleri anında veya seri hale getirilebilir hareket yalıtım kullanarak tek bir işlem yürütülür. Bu hareket yalıtım düzeyleri hakkında daha fazla bilgi için bkz: set hareket yalıtım DÜZEYINE (Transact-sql).

  2. order by yan tümcesi, bir sütun ya da benzersiz olduğu garanti sütun birleşimi içerir.

"Çalışan birden çok sorgu, tek bir işlem" bakın daha sonra bu konudaki örnekler bölümünde.

Tutarlı uygulama planları, sayfalama çözümünde önemli, uzaklık ve getirme parametrelerini optimize etmek için sorgu ipucu kullanma düşünün. "Belirtme uzaklığı ve getirme değerleri" ifadelerin daha sonra bu konudaki örnekler bölümünde. Hakkında OPTIMZE için daha fazla bilgi için bkz: Sorgu ipuçları (Transact-sql).

Örnekler

Kategori

Seçme sözdizimi öğeleri

Temel sözdizimi

ORDER BY

Artan ve azalan belirtme

DESC • ASC

Bir harmanlama belirtme

COLLATE

Koşullu bir siparişi belirtme

dax ifade

order by bir sıralama işlevini kullanma

Sıralama işlevleri

Döndürülen satırların sayısını sınırlama

OFSET • GETİRME

order by UNION ile kullanma, dışında ve INTERSECT

UNION

Temel sözdizimi

Bu bölümdeki örnekler, en az gerekli sözdizimini kullanarak order by yan tümcesi temel işlevselliğini göstermektedir.

A.Tek bir sütun seçme listesinde tanımlanan belirtme

Aşağıdaki örnek sonuç kümesini sayısal tarafından emir ProductIDsütun. Özel sıralama düzeni belirtilmemiş olduğundan, (artan) varsayılan değer kullanılır.

USE AdventureWorks2012;
GO
SELECT ProductID, Name FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY ProductID;

B.Seçme listesinde tanımlanmamış bir sütun belirtme

Aşağıdaki örnek, sonuç kümesini seçme listesinde bulunmayan, ancak from yan tümcesinde belirtilen tablosunda tanımlanan bir sütuna göre sıralar.

USE AdventureWorks2012;
GO
SELECT ProductID, Name, Color
FROM Production.Product
ORDER BY ListPrice;

C.Sıralama sütunu bir diğer ad belirtme

Aşağıdaki örnek sütun diğer adı belirtir SchemaNamesıralama sipariş sütun olarak.

USE AdventureWorks2012;
GO
SELECT name, SCHEMA_NAME(schema_id) AS SchemaName
FROM sys.objects
WHERE type = 'U'
ORDER BY SchemaName;

D.Bir ifade sıralama sütunu belirtme

Aşağıdaki örnek, sıralama sütunu için bir ifade kullanır. İfade, sonuç kümesi içinde çalışanların işe alınan yıla göre sıralamak için datepart işlevi kullanılarak tanımlanır.

USE AdventureWorks2012;
Go
SELECT BusinessEntityID, JobTitle, HireDate
FROM HumanResources.Employee
ORDER BY DATEPART(year, HireDate);

Artan ve azalan sıralama düzeni belirtme

A.Azalan düzeni belirtme

Aşağıdaki örnek sonuç kümesini sayısal sütun tarafından emir ProductIDAzalan.

USE AdventureWorks2012;
GO
SELECT ProductID, Name FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY ProductID DESC;

B.Artan sırada belirtme

Aşağıdaki örnek sonuç kümesini emir Namesütunu artan sırada. Karakterleri sıralandığını alfabetik, sayısal değil unutmayın. Yani 10 2 önce sıralanır.

USE AdventureWorks2012;
GO
SELECT ProductID, Name FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY Name ASC ;

C.Hem artan ve azalan belirtme

Aşağıdaki örnek sonuç kümesi iki sütuna göre sıralar. Sorgu sonuç kümesindeki ilk göre artan düzende sıralanır FirstNamesütun ve göre azalan düzende sıralanmış LastNamesütun.

USE AdventureWorks2012;
GO
SELECT LastName, FirstName FROM Person.Person
WHERE LastName LIKE 'R%'
ORDER BY FirstName ASC, LastName DESC ;

Bir harmanlama belirtme

Aşağıdaki örnek, nasıl bir harmanlama order by yan tümcesinde belirtme sorgu sonuçlarında döndürülen sırasını değiştirmek gösterir. Büyük küçük harf duyarlı, büyük/küçük aksan-duyarlı harmanlamayı kullanılarak tanımlanmış bir sütun içeren bir tablo oluşturulur. Değerler, kasa ve aksan farkları çeşitli ile eklenir. Bir harmanlama order by yan tümcesinde belirtilen çünkü ilk sorgu değerleri sıralarken sütunun harmanlama kullanır. İkinci sorguda, büyük küçük harf duyarlı, aksan duyarlı harmanlamayı içinde döndürülen satırların sırasını değiştirir order by yan tümcesinde belirtilir.

USE tempdb;
GO
CREATE TABLE #t1 (name nvarchar(15) COLLATE Latin1_General_CI_AI)
GO
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;

Koşullu bir siparişi belirtme

Aşağıdaki örnekler, koşullu bir belirli sütun değerine göre bir satır sıralama düzenini belirlemek için bir order by yan tümcesinde case deyimi kullanır. İlk örnekte, değeri SalariedFlagsütununda HumanResources.Employeetablo değerlendirilen. Çalışanları SalariedFlag1 olarak ayarlanmış tarafından sırayla döndürülür BusinessEntityIDAzalan. Çalışanları SalariedFlag0 olarak ayarlanırsa, tarafından sırayla döndürülür BusinessEntityIDartan sırada. İkinci örnek, sonuç kümesi sütun tarafından sipariş edilen TerritoryNamezaman sütun CountryRegionName' ABD için ' eşit ve CountryRegionNamediğer tüm satırlar için.

SELECT BusinessEntityID, SalariedFlag
FROM HumanResources.Employee
ORDER BY CASE SalariedFlag WHEN 1 THEN BusinessEntityID END DESC
        ,CASE WHEN SalariedFlag = 0 THEN BusinessEntityID END;
GO

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;

order by bir sıralama işlevini kullanma

Aşağıdaki örnek, Satır_num, rank, dense_rank ve NTILE sıralama işlevleri için order by yan tümcesi kullanır.

USE AdventureWorks2012;
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.SalesPersonID = p.BusinessEntityID
    INNER JOIN Person.Address AS a 
        ON a.AddressID = p.BusinessEntityID
WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0;

Döndürülen satırların sayısını sınırlama

Aşağıdaki örnekler, bir sorgu tarafından döndürülen satır sayısını sınırlamak için uzaklık ve getirme kullanın.

A.Tamsayı sabitler için belirtme uzaklığı ve değerleri Getir

Aşağıdaki örnek, uzaklık ve getirme yan tümceleri için değer olarak bir tamsayı sabiti belirtir. İlk sorguyu sütuna göre sıralama tüm satırları döndürür DepartmentID. İzleyen iki sorgu sonuçlarını içeren bu sorgu tarafından döndürülen sonuçları karşılaştırın. Sonraki sorgu yan tümcesi kullanan OFFSET 5 ROWSilk 5 satırları atla ve tüm geri kalan satırlar dönmek. Son sorgu yan tümcesi kullanan OFFSET 0 ROWSile başlayan ilk satırı ve ardından kullandığı FETCH NEXT 10 ROWS ONLYsıralanan sonuç kümesinden 10 satır döndürülen satırların sınırlamak için.

USE AdventureWorks2012;
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.Ofset ve getirme değerleri belirten değişkenleri

Aşağıdaki örnek değişkenleri bildirir @StartingRowNumberve @FetchRowsve bu değişkenlerin uzaklık ve getirme yan tümcelerini belirtir.

USE AdventureWorks2012;
GO
-- Specifying variables for OFFSET and FETCH values  
DECLARE @StartingRowNumber tinyint = 1
      , @FetchRows tinyint = 8;
SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department
ORDER BY DepartmentID ASC 
    OFFSET @StartingRowNumber ROWS 
    FETCH NEXT @FetchRows ROWS ONLY;

C.Ofset ve getirme değerleri belirten ifadeler

Aşağıdaki örnek, ifadeyi kullanır @StartingRowNumber - 1ifade ve uzaklık değerini belirtmek için @EndingRowNumber - @StartingRowNumber + 1getirme değerini belirtmek için. Ayrıca, en iyi duruma getirmek için sorgu ipucu belirtilir. Bu ipucu, sorgunun derlenmiş ve optimize yerel bir değişkenin belirli bir değer sağlamak için kullanılabilir. Değer, yalnızca sorgu en iyi duruma getirme ve sorgu yürütme sırasında kullanılır. Daha fazla bilgi için, bkz. Sorgu ipuçları (Transact-sql).

USE AdventureWorks2012;
GO

-- Specifying expressions for OFFSET and FETCH values    
DECLARE @StartingRowNumber tinyint = 1
      , @EndingRowNumber 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.Ofset ve değerleri almak için sürekli skalar alt sorgu belirtme

Aşağıdaki örnek, sabit bir skalar alt getirme yan tümcesi değerini tanımlamak için kullanır. Alt sorgu sütunundan tek bir değer döndüren PageSizetabloya dbo.AppSettings.

-- Specifying a constant scalar subquery
USE AdventureWorks2012;
GO
CREATE TABLE dbo.AppSettings (AppSettingID int NOT NULL, PageSize int NOT NULL);
GO
INSERT INTO dbo.AppSettings VALUES(1, 10);
GO
DECLARE @StartingRowNumber 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.Tek bir işlemde birden fazla sorguları çalıştırma

Aşağıdaki örnek, istikrarlı sonuçlar sağlar bir disk belleği çözümü uygulayan bir yöntem sorgudan tüm istekleri döndürülür gösterir. Anlık görüntü yalıtım düzeyi kullanarak tek bir işlem sorgu yürütülür ve order by yan tümcesinde belirlenen sütun sütun benzersiz sağlar.

USE AdventureWorks2012;
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'AdventureWorks2012') = 0
    ALTER DATABASE AdventureWorks2012 SET ALLOW_SNAPSHOT_ISOLATION ON;
GO

-- Set the transaction isolation level  to SNAPSHOT for this query.
SET TRANSACTION ISOLATION LEVEL SNAPSHOT;
GO

-- Beging the transaction
BEGIN TRANSACTION;
GO
-- Declare and set the variables for the OFFSET and FETCH values.
DECLARE @StartingRowNumber int = 1
      , @RowCountPerPage 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;
GO
COMMIT TRANSACTION;
GO

order by UNION ile kullanma, dışında ve INTERSECT

Bir sorgu Birliği kullandığında, dışında veya INTERSECT işleçleri, order by yan tümcesi deyimi sonunda belirtilmelidir ve kombine sorguların sonuçlarını sıralanır. Aşağıdaki örnek, kırmızı veya sarı ve bu birlikte sıralar olan tüm ürünleri verir sütun listesi ListPrice.

USE AdventureWorks2012;
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;

Ayrıca bkz.

Başvuru

Ifadeler (Transact-sql)

select (Transact-sql)

FROM (Transact-sql)

Sıralama işlevleri (Transact-sql)

TOP (Transact-sql)

Sorgu ipuçları (Transact-sql)

DIŞINDA ve INTERSECT (Transact-sql)

Birliği (Transact-sql)

CASE (Transact-sql)