リファレンスガイド> TDV SQLのキーワードと構文> ORDER BY
 
ORDER BY
この関数は、列を昇順(デフォルト)または降順(指定されている場合、以下の例に示すように)でソートします。
構文
ORDER BY columnA [ASC | DESC] [NULLS FIRST | NULLS LAST] [, columnB [ASC | DESC] [NULLS FIRST | NULLS LAST], ... ]]
備考
ORDER BYを指定しない場合、順序は未定義です。 ORDER BYがない場合、同じSQLクエリを2回実行すると、並べ替え順序が異なる可能性があります。
複数の列を指定すると、結果は指定された最初の列で並べ替えられ、次に最初の列内の2番目の列で並べ替えられます。
デフォルトでは、TDVサーバーはASCの場合は最初にNULLを返し、DESCの場合は最後にNULLを返します。
Microsoft、Sybase、SQL Server、MySQL、およびInformixのデータソースもこれらのデフォルト値を使用します。
OracleとDB2のデータソースは反対のデフォルトを使用します。
TDVは、分析関数およびSELECT句でORDER BYをサポートします。
注: OracleとNetezzaは、分析関数でORDER BYもサポートしています。 Microsoftのデータソースはそうではありません。
例(関数なしのORDER BY)
SELECT *
FROM /shared/examples/ds_inventory/inventorytransactions InventoryTransactions
ORDER BY ProductID, UnitsSold DESC
 
この例では、inventorytransactionsテーブルからすべての列を選択し、ProductID(昇順)で並べ替え、各ProductID内でUnitsSold(降順)で並べ替えます。
例(順序位置で指定された列を持つORDER BY)
列が選択される順序は、SELECTが発生した順序位置を表す整数に置き換えることができます。テーブルのすべての列がSELECT *で選択されている場合、テーブル内の列の位置(整数で表される)を使用できます。
SELECT ProductId, UnitsSold, UnitPrice
FROM /shared/examples/ds_inventory/inventorytransactions InventoryTransactions
ORDER BY 2 DESC, 1
 
この例では、inventorytransactionsテーブルからProductId、UnitsSold、およびUnitPriceの3つの列を選択し、結果を最初にUnitsSoldで降順で並べ替え、次にProductIdで昇順で並べ替えます。
例(乗算関数を使用したORDER BY)
SELECT ProductId, UnitsSold * UnitPrice
FROM /shared/examples/ds_inventory/inventorytransactions
ORDER BY ProductID, UnitsSold * UnitPrice DESC
 
この例では、inventorytransactionsからProductId、UnitsSold、およびUnitPriceを選択し、ProductIDで昇順で並べ替え、各ProductID内で、UnitsSoldにUnitPriceを掛けた結果の降順で並べ替えます。