Uso de funciones de cadena

Puedes usar funciones de cadena en casi cualquier objeto en Expresiones Multidimensionales (MDX). En los procedimientos almacenados, usas funciones de cadena principalmente para convertir el objeto a una representación de cadenas. También usas funciones de cadena para evaluar una expresión de cadena sobre un objeto con el fin de devolver un valor.

Las funciones de cadena más utilizadas son Nombre y Nombre único. Respectivamente, estas funciones devuelven el nombre y el nombre único de un objeto. Principalmente, se utilizan al depurar cálculos para descubrir qué miembro está devolviendo una función.

Examples

Las siguientes consultas de ejemplo muestran cómo utilizar estas funciones:

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]  

La función Generar puede usarse para ejecutar una función de cadena en cada miembro de un conjunto y concatenar los resultados. Esto también puede ser útil al depurar cálculos, ya que permite visualizar el contenido de un conjunto. El siguiente ejemplo muestra cómo usarlo de esta manera:

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]  

Otro grupo de funciones de cadena ampliamente utilizadas son aquellas que permiten convertir una cadena que contiene el nombre único de un objeto o una expresión que resuelve el objeto dentro del propio objeto. La siguiente consulta de ejemplo demuestra cómo las funciones StrToMember y StrToSet hacen esto:

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

Las funciones StrToMember y StrToSet deben usarse con precaución. Pueden provocar un bajo rendimiento de consultas si se utilizan dentro de las definiciones de cálculo.