IsMatch
EssbaseのMDX IsMatch関数は、ワイルドカード検索またはパターン照合を実行して、文字列が指定されたパターンに一致するかどうかを確認します。入力文字列は、メンバー名、別名、属性値、または関連する任意の文字列にできます。この関数は、指定したパターンに一致する文字列を検索し、見つかったアーティファクトを返します。
構文
IsMatch(string, patternstring, {MATCH_CASE | IGNORE_CASE})
パラメータ
- string
-
パターンに対してテストする必要がある文字列。
- patternstring
-
検索するパターン。POSIX拡張正規表現構文である必要があります。The Open Groupの構文仕様を参照してください。
特殊文字に関する追加の規則については、このトピックの「ノート」を参照してください。
- MATCH_CASE
-
オプション。patternstringの大文字と小文字を区別するとみなします。
MATCH_CASE
またはIGNORE_CASE
を省略した場合、Essbaseは、デフォルトでアウトライン・プロパティの大文字と小文字を区別する設定になります。 - IGNORE_CASE
-
オプション。patternstringの大文字と小文字を区別するとみなしません。
MATCH_CASE
またはIGNORE_CASE
を省略した場合、Essbaseは、デフォルトでアウトライン・プロパティの大文字と小文字を区別する設定になります。
ノート
-
$
を含むメンバー名を検索するには、patternstring内でこの文字の前に3つの円記号エスケープ文字を付加する必要があります。たとえば、Market内でa$bc
を検索するには、IsMatch(Market.CurrentMember.MEMBER_NAME, "a\\\$bc")
を使用する必要があります。 -
行末の文字を検索するには、patternstring内で、POSIX行末アンカーであるドル記号の前に、円記号エスケープ文字を1つ付加する必要があります。たとえば、Market内で末尾が
c
のメンバー名を検索するには、IsMatch(Market.CurrentMember.MEMBER_NAME, "c\$")
を使用する必要があります。 -
$
以外の特殊文字を検索するには、patternstring内で、その文字の前に2つの円記号(\
)エスケープ文字を付加する必要があります。たとえば、Market内でメンバーa?bc
を検索するには、IsMatch(Market.CurrentMember.MEMBER_NAME, "a\\?bc")
を使用する必要があります。
例
次の問合せは、名前が"new"
で始まるメンバーを検索します:
SELECT
Filter(Market.Levels(0).Members,
IsMatch(Market.CurrentMember.MEMBER_NAME, "^new")
)
ON COLUMNS
FROM Sample.Basic
次の問合せは、名前が少なくとも"n"
で始まるメンバーを検索します:
SELECT
Filter(Market.Levels(0).Members,
ISMATCH(Market.CurrentMember.MEMBER_NAME, "^n+")
)
ON COLUMNS
FROM Sample.Basic
次の問合せは、名前に*
が含まれるメンバーを検索します:
SELECT
Filter(Year.Members,
ISMATCH(Year.CurrentMember.MEMBER_NAME, "\\*")
)
ON COLUMNS
FROM Sample.Basic
次の問合せは、名前にゼロまたは1つのa
が含まれるメンバーを検索します:
SELECT
Filter(Year.Members,
ISMATCH(Year.CurrentMember.MEMBER_NAME, "a?")
)
ON COLUMNS
FROM Sample.Basic