Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Uspořádá členy určené množiny, volitelně zachovává nebo narušuje hierarchii.
Syntax
Numeric expression syntax
Order(Set_Expression, Numeric_Expression
[ , { ASC | DESC | BASC | BDESC } ] )
String expression syntax
Order(Set_Expression, String_Expression
[ , { ASC | DESC | BASC | BDESC } ] )
Arguments
Nastavit_výraz
Platný výraz Multidimensional Expressions (MDX), který vrací množinu.
Numeric_Expression
Platný číselný výraz, který je typicky výrazem Multidimenzionálních výrazů (MDX) souřadnic buňky, které vracejí číslo.
String_Expression
Platný řetězcový výraz, který je typicky platným výrazem Multidimensional Expressions (MDX) souřadnic buněk, které vracejí číslo vyjádřené jako řetězec.
Remarks
Funkce Order může být buď hierarchická (jak je specifikováno pomocí příznaku ASC nebo DESC ), nebo nehierarchická (jak je specifikováno použitím příznaku BASC nebo BDESC ; B znamená "break hierarchy" (přerušení hierarchie). Pokud je specifikováno ASC nebo DESC , funkce Order nejprve uspořádá členy podle jejich pozice v hierarchii a poté pořadí každé úrovně. Pokud je specifikováno BASC nebo BDESC , funkce Order uspořádá členy v množině bez ohledu na hierarchii. Pokud není uveden žádný příznak, výchozí je ASC .
Pokud je funkce Order použita s množinou, kde jsou dvě nebo více hierarchií propojeny, a používá se příznak DESC , jsou uspořádáni pouze členové poslední hierarchie v této množině. Jedná se o změnu oproti Analysis Services 2000, kde byly všechny hierarchie v sadě uspořádány.
Examples
Následující příklad vrací z krychle Adventure Works počet objednávek přeprodeje pro všechny Kalendářní čtvrtletí z hierarchie Kalendáře na dimenzi Datum. Funkce Order přeuspořádá množinu pro osu ROWS. Funkce Řád uspořádává množinu podle [Reseller Order Count] sestupného hierarchického pořadí, jak je určeno hierarchií [Calendar] .
SELECT
Measures.[Reseller Order Count] ON COLUMNS,
Order(
[Date].[Calendar].[Calendar Quarter].MEMBERS,
Measures.[Reseller Order Count],
DESC
) ON ROWS
FROM [Adventure Works]
Všimněte si, jak v tomto příkladu, když je příznak DESC změněn na BDESC, hierarchie je narušena a seznam Kalendářních čtvrtletí se vrací bez ohledu na hierarchii:
SELECT
Measures.[Reseller Order Count] ON COLUMNS,
Order (
[Date].[Calendar].[Calendar Quarter].MEMBERS,
Measures.[Reseller Order Count],
BDESC
) ON ROWS
FROM [Adventure Works]
Následující příklad vrací Ukazatel prodeje přeprodejců pro pět nejprodávanějších podkategorií produktů bez ohledu na hierarchii, na základě hrubého zisku prodejce. Funkce Podmnožiny se používá k vrácení pouze prvních 5 tic v množině poté, co je výsledek uspořádán pomocí funkce Uspořádání .
SELECT Subset
(
Order
(
[Product].[Product Categories].[SubCategory].members,
[Measures].[Reseller Gross Profit],
BDESC
), 0, 5
) ON 0
FROM [Adventure Works]
Následující příklad používá funkci Rank k řazení členů městské hierarchie na základě ukazatele Reseller Sales Amount a poté je zobrazuje v pořadí. Použitím funkce Order k prvnímu uspořádání množiny členů hierarchie Města se třídění provádí pouze jednou a poté následuje lineární skenování před prezentací v seřazeném pořadí.
WITH
SET OrderedCities AS Order
([Geography].[City].[City].members
, [Measures].[Reseller Sales Amount], BDESC
)
MEMBER [Measures].[City Rank] AS Rank
([Geography].[City].CurrentMember, OrderedCities)
SELECT {[Measures].[City Rank],[Measures].[Reseller Sales Amount]} ON 0
,Order
([Geography].[City].[City].MEMBERS
,[City Rank], ASC)
ON 1
FROM [Adventure Works]
Následující příklad vrací počet součinů v množině, které jsou jedinečné, přičemž funkce Order slouží k uspořádání neprázdných n-tic před využitím funkce Filter . Funkce CurrentOrdinal se používá k porovnání a odstranění shod.
WITH MEMBER [Measures].[PrdTies] AS Count
(Filter
(Order
(NonEmpty
([Product].[Product].[Product].Members
, {[Measures].[Reseller Order Quantity]}
)
, [Measures].[Reseller Order Quantity]
, BDESC
) AS OrdPrds
, (OrdPrds.CurrentOrdinal < OrdPrds.Count
AND [Measures].[Reseller Order Quantity] =
( [Measures].[Reseller Order Quantity]
, OrdPrds.Item
(OrdPrds.CurrentOrdinal
)
)
)
OR (OrdPrds.CurrentOrdinal > 1
AND [Measures].[Reseller Order Quantity] =
([Measures].[Reseller Order Quantity]
, OrdPrds.Item
(OrdPrds.CurrentOrdinal-2)
)
)
)
)
SELECT {[Measures].[PrdTies]} ON 0
FROM [Adventure Works]
Abychom pochopili, jak příznak DESC funguje s množinami n-tic, nejprve zvažme výsledky následujícího dotazu:
SELECT
{[Measures].[Tax Amount]} ON 0,
ORDER(
[Sales Territory].[Sales Territory].[Group].MEMBERS
,[Measures].[Tax Amount], DESC)
ON 1
FROM [Adventure Works]
Na ose Řádky můžete vidět, že skupiny Prodejní území byly seřazeny sestupně podle výše daně, následovně: Severní Amerika, Evropa, Pacifik, Severní Austrálie. Nyní se podívejte, co se stane, když propojíme množinu skupin prodejních území s množinou produktových podkategorií a aplikujeme funkci objednávky stejným způsobem, následovně:
SELECT
{[Measures].[Tax Amount]} ON 0,
ORDER(
[Sales Territory].[Sales Territory].[Group].MEMBERS
*
{[Product].[Product Categories].[subCategory].Members}
,[Measures].[Tax Amount], DESC)
ON 1
FROM [Adventure Works]
Zatímco sada podkategorií produktů byla seřazena sestupně, hierarchicky, skupiny prodejních území nyní nejsou seřazeny a objevují se v pořadí, v jakém se objevují v hierarchii: Evropa, Severní Austrálie, Severní Amerika a Pacifik. Je to proto, že je seřazena pouze poslední hierarchie v množině n-tic, Podkategorie produktu. Pro reprodukci chování Analysis Services 2000 použijte řadu vnořených funkcí Generate k seřazení každé množiny před jejím křížovým spojením, například:
SELECT
{[Measures].[Tax Amount]} ON 0,
GENERATE(
ORDER(
[Sales Territory].[Sales Territory].[Group].MEMBERS
,[Measures].[Tax Amount], DESC)
,
ORDER(
[Sales Territory].[Sales Territory].CURRENTMEMBER
*
{[Product].[Product Categories].[subCategory].Members}
,[Measures].[Tax Amount], DESC))
ON 1
FROM [Adventure Works]