Tekenreeksfuncties gebruiken

Je kunt stringfuncties gebruiken op bijna elk object in Multidimensional Expressions (MDX). In stored procedures gebruik je snaarfuncties vooral om het object om te zetten naar een representatie. Je gebruikt ook stringfuncties om een stringexpressie over een object te evalueren om een waarde terug te geven.

De meest gebruikte stringfuncties zijn Name en Uniquename. Respectievelijk geven deze functies de naam en unieke naam van een object terug. Meestal worden ze gebruikt bij het debuggen van berekeningen om te ontdekken welk lid een functie teruggeeft.

Examples

De volgende voorbeeldqueries laten zien hoe deze functies gebruikt kunnen worden:

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]  

De Genere-functie kan worden gebruikt om een stringfunctie uit te voeren op elk lid van een set en de resultaten aan elkaar te koppelen. Dit kan ook nuttig zijn bij het debuggen van berekeningen, omdat je zo de inhoud van een set kunt visualiseren. Het volgende voorbeeld laat zien hoe je het op deze manier kunt gebruiken:

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]  

Een andere groep veelgebruikte stringfuncties zijn die waarmee je een string met de unieke naam van een object of een expressie die naar het object wordt opgelost in het object zelf kunt omzetten. De volgende voorbeeldquery laat zien hoe de functies StrToMember en StrToSet dit doen:

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

De functies StrToMember en StrToSet moeten met voorzichtigheid worden gebruikt. Ze kunnen leiden tot slechte queryprestaties als ze binnen berekeningsdefinities worden gebruikt.