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.
Stringové funkce můžete použít téměř na každý objekt v Multidimensional Expressions (MDX). Ve uložených procedurách používáte stringové funkce především k převodu objektu na reprezentaci řetězce. Také používáte řetězcové funkce k vyhodnocení řetězcového výrazu nad objektem, abyste vrátili hodnotu.
Nejčastěji používané řetězcové funkce jsou Name a Uniquename. Tyto funkce vracejí název a jedinečný název objektu. Většinou se používají při ladění výpočtů, aby se zjistilo, který člen funkce vrací.
Examples
Následující příklady dotazů ukazují, jak tyto funkce používat:
WITH
//Returns the name of the current Product on rows
MEMBER [Measures].[ProductName] AS [Product].[Product].CurrentMember.Name
//Returns the uniquename of the current Product on rows
MEMBER [Measures].[ProductUniqueName] AS [Product].[Product].CurrentMember.Uniquename
//Returns the name of the Product dimension
MEMBER [Measures].[ProductDimensionName] AS [Product].Name
SELECT {[Measures].[ProductName],[Measures].[ProductUniqueName],[Measures].[ProductDimensionName]}
ON COLUMNS,
[Product].[Product].MEMBERS ON ROWS
FROM [Adventure Works]
Funkce Generate může být použita k vykonání řetězcové funkce na každém členu množiny a ke spojení výsledků. To může být užitečné i při ladění výpočtů, protože umožňuje vizualizovat obsah množiny. Následující příklad ukazuje, jak ji použít tímto způsobem:
WITH
//Returns the names of the current Product and its ancestors up to the All Member
MEMBER [Measures].[AncestorNames] AS
GENERATE(
ASCENDANTS([Product].[Product Categories].CurrentMember)
, [Product].[Product Categories].CurrentMember.Name, ", ")
SELECT
{[Measures].[AncestorNames]}
ON COLUMNS,
[Product].[Product Categories].MEMBERS ON ROWS
FROM [Adventure Works]
Další skupinou běžně používaných řetězcových funkcí jsou ty, které umožňují přenést řetězec obsahující unikátní název objektu nebo výraz, který se vyřeší na objekt, přímo do objektu. Následující příklad dotazu ukazuje, jak to dělají funkce StrToMember a StrToSet :
SELECT
{StrToMember("[Measures].[Inter" + "net Sales Amount]")}
ON COLUMNS,
StrToSet("{
[Product].[Product Categories].[Category].&[3],
[Product].[Product Categories].[Product].&[477],
[Product].[Product Categories].[Product].&[788],
[Product].[Product Categories].[Product].&[708],
[Product].[Product Categories].[Product].&[711]
}")
ON ROWS
FROM [Adventure Works]
Note
Funkce StrToMember a StrToSet by měly být používány s opatrností. Mohou vést ke špatnému výkonu dotazů, pokud jsou použity v definicích výpočtů.