StrToMember (MDX)
多次元式 (MDX) 形式の文字列によって指定されているメンバーを返します。
構文
StrToMember(Member_Name [,CONSTRAINED] )
引数
- Member_Name
直接的または間接的にメンバーを指定する有効な文字列式です。
説明
StrToMember 関数は、文字列式で指定されたメンバーを返します。 通常、StrToMember 関数は、メンバーの指定を外部関数から MDX ステートメントに返す場合、または MDX クエリがパラメーター化される場合に、ユーザー定義関数と組み合わせて使用されます。
CONSTRAINED フラグを使用するときは、メンバー名には修飾されているメンバー名または修飾されていないメンバー名に直接解決できる文字列を指定する必要があります。 このフラグは、指定された文字列によるインジェクション攻撃の危険性を軽減するために使用します。 修飾されているメンバー名または修飾されていないメンバー名に直接解決できない文字列を指定すると、"STRTOMEMBER 関数の CONSTRAINED フラグによって設定された制限に違反しました。" というエラーが表示されます。
CONSTRAINED フラグを使用しない場合、メンバー名に直接解決されるメンバーも、名前に解決される MDX 式に解決されるメンバーも指定できます。
セットとメンバーの違いを理解するには、「セット式の使用」および「メンバー式の使用」を参照してください。
使用例
次の例では、StrToMember 関数を使用して、State-Province 属性階層にある Bayern メンバーの Reseller Sales Amount メジャーを返します。 文字列の指定により、修飾されているメンバー名が指定されています。
SELECT {StrToMember ('[Geography].[State-Province].[Bayern]')}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
次の例では、StrToMember 関数を使用して、Bayern メンバーの Reseller Sales Amount メジャーを返します。 メンバー名文字列には修飾されていないメンバー名のみを指定したので、クエリは指定メンバーの最初のインスタンスを返します。この最初のインスタンスは、Reseller Sales と交差しない Customer ディメンションの Customer Geography 階層にあります。 期待する結果を確実に取得するには、修飾されている名前を指定することをお勧めします。
SELECT {StrToMember ('[Bayern]').Parent}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
次の例では、StrToMember 関数を使用して、State-Province 属性階層にある Bayern メンバーの Reseller Sales Amount メジャーを返します。 指定したメンバー名文字列は、修飾されているメンバー名に解決されます。
SELECT {StrToMember('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
次の例では、CONSTRAINED フラグが原因でエラーが返されます。 指定したメンバー名文字列には、修飾されているメンバー名に解決される有効な MDX メンバー式が含まれていますが、CONSTRAINED フラグを使用しているので、メンバー名文字列内に修飾されているメンバー名または修飾されていないメンバー名が必要になります。
SELECT StrToMember ('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)
ON 0
FROM [Adventure Works]