MDX文法ルール
このMDX文法ルールのBNF表現では、Essbaseに適用されるMDX言語のすべての使用可能な構文要素をトップダウンで確認できます。
以下は、EssbaseでのMDXの構文の包括的なビューです。
このドキュメントでは、MDXの構文をBNF表記を使用して説明します。
[<with_section>]
[<insert_specification>]
[<export_specification>]
SELECT [<axis_specification>
[, <axis_specification>...]]
[<subselect>]
[FROM [<cube_specification>]]
[WHERE [<slicer_specification> [<dim_props>]]
<insert_specification> ::=
INSERT
<source_tuple> TO <target_tuple>
....
<source_tuple> TO <target_tuple>
[<offset> <debitmember> <creditmember>]
[USING <load_buffer_method>]
INTO <cube_specification>
<subselect>
<export_specification> ::=
EXPORT INTO FILE <file_name> [<OVERWRITE> <USING COLUMNDELIMITER <delimiter_character>>]
<subselect> ::=
FROM SELECT [<axis_specification>
[, <axis_specification>...]]
<cube_specification> ::=
'[' <ident_or_string>.<ident_or_string> ']'
| <delim_ident>.<delim_ident>
<delim_ident> ::=
'[' <ident> ']'
| <ident_or_string>
<ident_or_string> ::=
' <ident> '
| <ident>
ノート:
<ident>は有効なEssbaseアプリケーションまたはデータベース名を参照します。キューブ仕様では、識別子が2つある場合、最初の識別子はアプリケーション名で、2番目の識別子はデータベース名である必要があります。たとえば、次のすべてが有効な識別子です。
-
Sample.Basic
-
[Sample.Basic]
-
[Sample].[Basic]
-
'Sample'.'Basic'
<axis_specification> ::=
[NON EMPTY] <set> [<dim_props>] ON
COLUMNS | ROWS | PAGES | CHAPTERS |
SECTIONS | AXIS (<unsigned_integer>)
<dim_props> ::=
[DIMENSION] PROPERTIES <property> [, <property>...]
<slicer_specification> ::= <set> | <tuple> | <member>
ノート:
スライサ内の<set>
のカーディナリティは1である必要があります。
<member> ::=
<member-name-specification>
| <member_value_expression>
<member-name-specification> ::=
メンバー名は、次の方法で指定できます。
-
実際の名前または別名を指定します。たとえば
Cola
、Actual
、COGS
、[100]
です。メンバー名が数字で始まるかスペースが含まれている場合、大カッコで囲む必要があります。たとえば、
[100]
です。コードを明確で読みやすくするために、すべてのメンバー名に大カッコを使用することをお薦めします。属性メンバーの場合、メンバーを一意に識別するために修飾された、長い名前を使用する必要があります。たとえば、
[12]
だけでなく、[Ounces_12]
のようにします。 -
メンバー名のプレフィックスとしてディメンション名または祖先メンバー名のいずれかを指定します。たとえば、
[Product].[100-10]
や[Diet].[100-10]
のようにします。これは、あいまいさを排除し、共有メンバーを正確に参照できるため、すべてのメンバー名に推奨される方法です。ノート:
修飾には1つの祖先のみを使用します。Essbaseは、複数の祖先が含まれている場合にエラーを返します。たとえば、
[Market].[New York]
はNew Yorkの有効な名前であり、[East].[New York]
も同様に有効です。しかし、[Market].[East].[New York]
はエラーを返します。 -
WITHセクションで定義された計算メンバーの名前を指定します。
-
重複メンバー名が有効になっているアウトラインについては、重複メンバー名と別名を指定するためのMDX構文も参照してください。
<member_value_expression> ::=
Parent ( <member> [,<hierarchy>] )
| <member>.Parent [(<hierarchy>)]
| FirstChild ( <member> )
| <member>.FirstChild
| LastChild ( <member> )
| <member>.LastChild
| PrevMember ( <member> [,<layertype>] )
| <member>.PrevMember [( <layertype> ) ]
| NextMember ( <member> [,<layertype>] )
| <member>.NextMember [( <layertype> ) ]
| FirstSibling ( <member> [,<hierarchy>])
| <member>.FirstSibling [(<hierarchy>)]
| LastSibling ( <member> [,<hierarchy>])
| <member>.LastSibling [(<hierarchy>)]
| Ancestor ( <member> , <layer> | <index> [,<hierarchy>] )
| Lead ( <member>, <index> [,<layertype>] [,<hierarchy>] )
| <member>.Lead ( <index> [,<layertype>] [,<hierarchy>] )
| Lag ( <member>, <index> [,<layertype>] [,<hierarchy>] )
| <member>.Lag ( <index> [,<layertype>] [,<hierarchy>] )
| CurrentAxisMember()
| CurrentMember ( <dim_hier> )
| <dim_hier>. CurrentMember
| DefaultMember ( <dim_hier> )
| <dim_hier>. DefaultMember
| OpeningPeriod ( [<layer> [,<member>]] )
| ClosingPeriod ( [<layer> [,<member>]] )
| Cousin (<member>, <member>)
| ParallelPeriod( [<layer>[, <index>[, <member> [,<hierarchy>]]]] )
| Item ( <tuple>, <index> )
| tuple[.Item] ( <index> )
| LinkMember ( <member>, <hierarchy> )
| member.LinkMember ( <hierarchy> )
| DateToMember (<date>, <dim_hier> [ ,<genlev>] )
| StrToMbr (<string_value_expr> [,<dimension>] [, MEMBER_NAMEONLY | <alias_table_name>])
<dim_hier> ::= <dimension>
<dimension> :: =
<dimension-name-specification>
| Dimension ( <member> | <layer> )
| <member>.DIMENSION
| <layer>.DIMENSION
<dimension-name-specification> ::=
Same as <member_name-specification> case 1.
e.g. Product, [Product]
<hierarchy> ::=
A hierarchy refers to a root member of an alternate hierarchy, which is always at
generation 2 of a dimension. Member value expressions are not allowed as hierarchy
arguments.
<layertype> ::=
GENERATION | LEVEL
<layer> ::=
<layer-name-specification>
| Levels ( <dim_hier>, <index> )
| <dim_hier>.Levels ( <index> )
| Generations ( <dim_hier>, <index> )
| <dim_hier>.Generations ( <index> )
| <member>.Generation
| <member>.Level
<layer-name-specification> ::=
レイヤー名は、次の方法で指定できます。
-
世代名またはレベル名を指定します。たとえば、
States
またはRegions
です。世代名またはレベル名は大カッコで囲むことができます。たとえば、
[Regions]
です。大カッコを使用することをお薦めします。 -
ディメンション名を、世代名またはレベル名と一緒に指定します。たとえば、
Market.Regions
および[Market].[States]
です。この命名規則をお薦めします。
<tuple> ::=
<member>
| ( <member> [,<member>].. )
| <tuple_value_expression>
タプルはメンバーのコレクションですが、2つのメンバーを同じディメンションからにできない制限があります。たとえば、(Actual, Sales)
がタプルです。(Actual, Budget)
はタプルではありません。これは、両方のメンバーが同じディメンションからのものであるためです。
<tuple_value_expression> ::=
CurrentTuple ( <set> )
| <set>.Current
| Item ( <set>, <index> )
| <set>[.Item] (<index>)
セットは、すべてのタプルのメンバーが同じディメンションで同じ順序である必要があるタプルのコレクションです。
たとえば、{(Actual, Sales), (Budget, COGS)}
はセットです。
{(Actual, Sales), (COGS, [100])}
はセットではありません。これは、2番目のタプルにはScenarioディメンションおよびProductディメンションのメンバーが含まれているのに対し、最初のタプルにはScenarioディメンションおよびMeasuresディメンションのメンバーが含まれているためです。
{(Actual, Sales). (COGS, Budget)}
はセットではありません。2番目のタプルにScenarioおよびMeasuresディメンションのメンバーが含まれているのに対し、最初のタプルにはMeasuresおよびScenarioディメンションのメンバーが含まれているためです(ディメンションの順序が異なる)。
ノート:
関数への入力セットのサイズは、0から4294967295個のタプルの範囲です。
<set> ::=
MemberRange ( <member>, <member>
[,<layertype>] [,<hierarchy>] )
| <member> : <member>
| { <tuple>|<set> [, <tuple>|<set>].. }
| ( <set> )
| <set_value_expression>
<set_value_expression> ::=
| Members ( <dim_hier> )
| <dim_hier>.Members
| Members ( <layer> )
| <layer>.Members
| Children ( <member> )
| <member>.Children
| CrossJoin ( <set> , <set> )
| CrossJoinAttribute ( <set> , <set> )
| Union ( <set> , <set> [,ALL] )
| Intersect ( <set> , <set> [,ALL])
| Except ( <set> , <set> [,ALL])
| Extract ( <set> , <dim_hier> [, <dim_hier>].. )
| Head ( <set> [, <index>])
| Subset ( <set> , <index> [,index])
| Tail ( <set> [,index])
| Distinct ( <set> )
| Siblings ( <member> [, <selection_flags>, [INCLUDEMEMBER|EXCLUDEMEMBER]] )
| <member>.Siblings
| Descendants ( <member> , [{<layer>|<index>}[, <Desc_flags>]] )
| PeriodsToDate ( [<layer>[, <member> [,<hierarchy>]]] )
| LastPeriods ( <index>[, <member> [,<hierarchy>]] )
| xTD ( [<member>] )
where xTD could be {HTD|YTD|STD|PTD|QTD|MTD|WTD|DTD}
| Hierarchize ( <set> [,POST] )
| Filter ( <set> , <search_condition> )
| Order ( <set>, <value_expression> [,BASC | BDESC] )
| TopCount ( <set> , <index> [,<numeric_value_expression>] )
| BottomCount ( <set> , <index> [,<numeric_value_expression>] )
| TopSum ( <set> , <numeric_value_expression>
, <numeric_value_expression> )
| BottomSum ( <set> , <numeric_value_expression>
, <numeric_value_expression> )
| TopPercent ( <set> , <percentage> , <numeric_value_expression> )
| BottomPercent ( <set> , <percentage> , <numeric_value_expression> )
| Generate ( <set> , <set> [, [ALL]] )
| DrilldownMember ( <set> , <set>[, RECURSIVE] )
| DrillupMember ( <set> , <set> )
| DrilldownByLayer ( <set> [, {<layer>|<index>] )
| DrilldownLevel ( <set> [, {<layer>|<index>] )
| DrillupByLayer ( <set> [, <layer>] )
| DrillupLevel ( <set>[, <layer>] )
| WithAttr ( <member> , <character_string_literal>, <value_expression> )
| WithAttrEx ( <member> , <character_string_literal>, <value_expression>, ANY, <tuple>|<member> [, <tuple>|<member>] )
| Attribute ( <member> )
| AttributeEx ( <member>, ANY, <tuple>|<member> [, <tuple>|<member>] )
| Uda ( <dimension> | <member> , <string_value_expression> )
| RelMemberRange ( <member>, <prevcount>, <nextcount>,
[,<layertype>] [,<hierarchy>] )
| Ancestors ( <member>, <layer>|<index> )
| <conditional_expression>
ノート:
<conditional_expression>
は、前述の生成で、<set>
を返すと予期されます。
<Desc_flags> ::=
SELF
| AFTER
| BEFORE
| BEFORE_AND_AFTER
| SELF_AND_AFTER
| SELF_AND_BEFORE
| SELF_BEFORE_AFTER
| LEAVES
<selection_flags> ::=
LEFT
| RIGHT
| ALL
<value_expression> ::=
<numeric_value_expression>
| <string_value_expression>
<numeric_value_expression> ::=
<term>
| <numeric_value_expression> + <term>
| <numeric_value_expression> - <term>
<term> ::=
<factor>
| <term> * <factor>
| <term> / <factor>
<factor> ::=
[+ | -]<numeric_primary>
<numeric_primary> ::=
<value_expr_primary>
| <numeric_value_function>
| <mathematical_function>
| <date_function>
ノート:
前述の生成の<value_expr_primary>
のデータ型は、数値である必要があります。
<base> ::=
<numeric_value_expression>
<power> ::=
<numeric_value_expression>
<mathematical_function> ::=
Abs ( <numeric_value_expression> )
| Exp ( <numeric_value_expression> )
| Factorial ( <index> )
| Int ( <numeric_value_expression> )
| Ln ( <numeric_value_expression> )
| Log ( <numeric_value_expression> [, <base>] )
| Log10 ( <numeric_value_expression> )
| Mod ( <numeric_value_expression> , <numeric_value_expression> )
| Power ( <numeric_value_expression> , <power> )
| Remainder ( <numeric_value_expression> )
| Stddev ( <set> [,<numeric_value_expression> [,IncludeEmpty] ] )
| Stddevp ( <set> [,<numeric_value_expression> [,IncludeEmpty] ] )
| Round ( <numeric_value_expression> , <index> )
| Truncate ( <numeric_value_expression> )
<date_function> ::=
DateRoll(<date>, <date_part>, <index>)
| DateDiff(<date>, <date>, <date_part>)
| DatePart(<date>, <date_part>)
| Today()
| TodateEx(<date_format_string>, <string>)
| GetFirstDate(<member>)
| GetLastDate(<member>)
| UnixDate(<numeric_value_expression>)
| GetFirstDay(<date>, <date_part>)
| GetLastDay(<date>, <date_part>)
| GetNextDay(<date>, <week-day-specification>, [0|1] )
| GetRoundDate(<date>, <date_part>)
<date>引数は、入力データを表す数値です。数値は、1970年1月1日の午前0時以降に経過した秒数です。この数値を取得するには、Today()、TodateEx()、GetFirstDate()、GetLastDate()のいずれかの関数を使用します。
<date_part> ::=
DP_YEAR
| DP_QUARTER
| DP_MONTH
| DP_WEEK
| DP_DAY
| DP_DAYOFYEAR
| DP_WEEKDAY
ノート:
DP_DAYOFYEAR
とDP_WEEKDAY
は、DateRoll関数とDateDiff関数では有効な引数ではありません。
<week-day-specification> ::=
1 | 2 | 3 | 4 | 5 | 6 | 7
e.g. 1 implying Sunday, 7 implying Saturday
<date_format_string> ::=
"mon dd yyyy"
| "Month dd yyyy"
| "mm/dd/yy"
| "mm/dd/yyyy"
| "yy.mm.dd"
| "dd/mm/yy"
| "dd.mm.yy"
| "dd-mm-yy"
| "dd Month yy"
| "dd mon yy"
| "Month dd, yy"
| "mon dd, yy"
| "mm-dd-yy"
| "yy/mm/dd"
| "yymmdd"
| "dd Month yyyy"
| "dd mon yyyy"
| "yyyy-mm-dd"
| "yyyy/mm/dd"
| "Long format"
| "Short format"
<string_value_expression> ::=
<string_value_primary>
| FormatDate (<date>, <date_format_string>)
| Concat (<string_value_expression> [<, string_value_expression> ...])
| Left(<string_value_expression>, <length>)
| Right(<string_value_expression>, <length>)
| Substring(<string_value_expression>, <index> [, <index>])
| Upper(<string_value_expression>)
| Lower (<string_value_expression>)
| RTrim(<string_value_expression>)
| LTrim(<string_value_expression>)
| NumToStr(<value_expr_primary>)
| EnumText(<textlistname> | <member>, <numeric_value_expression>)
<value_expr_primary> ::=
<unsigned_numeric_literal>
| ( <numeric_value_expression> )
| <tuple>[.RealValue]
| <member>[.RealValue]
| <tuple> [.Value]
| <member>[.Value]
| CellValue()
| <property>
| <conditional_expression>
| MISSING
<string_value_primary> ::=
<character_string_literal>
| <string_property>
ノート
-
<conditional_expression>
は、前述の生成で、数値を返すと予期されます。 -
文字列リテラルは、二重引用符(")で区切られます。
<conditional_expression> ::=
<if_expression>
| <case_expression>
| CoalesceEmpty ( <numeric_value_expression>
, <numeric_value_expression>)
<case_expression> ::=
<simple_case> | <searched_case>
<if_expression> ::=
IIF ( <search_condition>, <true_part>, <false_part> )
<true_part> ::=
<value_expression> | <set>
<false_part> ::=
<value_expression> | <set>
<simple_case> ::=
Case <case_operand>
<simple_when_clause>...
[ <else_clause> ]
END
<simple_when_clause> ::=
WHEN <when_operand>
THEN <result>
<else_clause> ::=
ELSE <value_expression> | <set>
<case_operand> ::=
<value_expression>
<when_operand> ::=
<value_expression>
<result> ::=
<value_expression> | <set>
<searched_case> ::=
Case
<searched_when_clause>...
[ <else_clause> ]
END
<searched_when_clause> ::=
WHEN <search_condition>
THEN <result>
<numeric_value_function> ::=
Avg ( <set> [, <numeric_value_expression>] [, IncludeEmpty] )
| Max ( <set> [, <numeric_value_expression>])
| Min ( <set> [, <numeric_value_expression>])
| Sum ( <set> [, <numeric_value_expression>])
| NonEmptyCount ( <set> [, <numeric_value_expression>])
| Count ( <set> [, IncludeEmpty] )
| <dts-specification> ::= DTS (<dts-operation-specification>,<member>)
<dts-operation-specification> ::= HTD|YTD|STD|PTD|QTD|MTD|WTD|DTD
| Todate ( <string_value_expression> , <string_value_expression> )
| Ordinal (<layer>)
| Aggregate (<set> [,<member-name-specification>])
| Rank (<member_or_tuple>, <set> [,<numeric_value_expression>
[, <rank_flags>]])
| NTile (<member_or_tuple>, <set>, <index>,
<numeric_value_expression>)
| Percentile (<set>, <numeric_value_expression>,
<numeric_value_expression>)
| Median (<set>, <numeric_value_expression>)
| Len (<string_value_expression>)
| InStr (<index>, <string_value_expression>,
<string_value_expression>, <numeric_value_expression>)
| StrToNum (<string_value_expression>)
| EnumValue(<enum_string>)
| JulianDate(<date>)
ノート:
集約関数の<member-name-specification>は、勘定科目ディメンション・メンバーを参照する必要があります。
ノート:
<enum_string>は、列挙された文字列を表します。次の形式である必要があります。メンバーは、テキスト型のメンバーを参照する必要があります。
<enum_string> ::=
<textlist-name-specification>.<character_string_literal>
| <member>.<character_string_literal>
<textlist-name-specification> ::=
Same as <member_name-specification> case 1. The text list name specification should refer to the name of a text list object.
e.g. AccountStatus, [AccountStatus]
<member_or_tuple> ::=
<member>
| <tuple>
<index> ::=
<numeric_value_expression>
ノート:
入力<index>引数の範囲は、-2147483647から2147483647です。
<percentage> ::=
<numeric_value_expression>
<search_condition> ::=
<bool_term>
| <search_condition> OR <bool_term>
<bool_term> ::=
<bool_factor>
| <bool_term> AND <bool_factor>
<bool_factor> ::=
<bool_primary>
| NOT <bool_primary>
<bool_primary> ::=
<value_expression> [=|>|<|<>|>=|<=] <value_expression>
| <property> IN <member>|<character_string_literal>
| <property>
| IsEmpty ( <value_expression> )
| ( <search_condition> )
| IsSibling(<member>,<member> [, INCLUDEMEMBER])
| IsLeaf(<member>)
| IsGeneration(<member>,<index>)
| IsLevel(<member>,<index>)
| IsAncestor(<member>,<member> [, INCLUDEMEMBER])
| IsChild(<member>,<member> [, INCLUDEMEMBER])
| IsUda (<member>, <string_value_expression>)
| IsAccType (<member>, <AcctTag>)
| Is ( <member> , <member> )
| <member> Is <member>
| IsValid (<member> | <tuple> | <set> | <layer> | <property>)
| IsMatch (<string_value_expression>, <string_value_expression>, [,MATCH_CASE|IGNORE_CASE])
| Contains (<member_or_tuple>, <set>)
ノート:
<bool_primary>
として使用できるのは、ブール値を持つプロパティのみです。
<AcctTag> ::=
FIRST
| LAST
| AVERAGE
| EXPENSE
| TWO-PASS
<rank_flags> ::=
ORDINALRANK
| DENSERANK
| PERCENTRANK
<with_section> ::=
WITH <frml_spec>
<frml_spec> ::=
<single_frml_spec>
| <frml_spec> <single_frml_spec>
<single_frml_spec> ::=
<set_spec>
| <perspective_specification>
| <member_specification>
<set_spec> ::=
SET <set_name> AS ' <set> '
<set_name> ::=
定義するセットの名前。名前は、データベース・メンバーの名前または別名、世代またはレベル名、またはUDA名と同じにすることはできません。
<perspective_specification> ::=
PERSPECTIVE REALITY | <tuple> FOR <dimension-name-specification>
<member_specification> ::=
MEMBER <member_name> AS '
<nonempty_specification>
<numeric_value_expression> '
[, <solve_order_specification>]
<member_name> ::=
<dimension-name-specification>.<calculated member name>
<calculated member name> ::=
計算メンバーに使用される名前は、データベース・メンバーの名前または別名、世代またはレベル名、またはUDA名と同じにすることはできません。
<solve_order_specification> ::=
SOLVE_ORDER = <unsigned_integer>
<property> ::=
<member>.<property_specification>
| <dim_hier>.<property_specification>
| <property_specification>
| <property_expr_specification>
ノート:
前述のルールの最後の3つの選択肢は、DIMENSION PROPERTIESセクション内でのみ使用できます。
軸にProductとMarketの2つのディメンションがあると仮定します。DIMENSION PROPERTIES Gen_number, [Product].level_number
を使用すると、世代番号は両方のディメンションのメンバーの出力に表示されますが、レベル番号は、Productディメンションのメンバーに対してのみ表示されます。
値式内で、[Product].Gen_number
は、[Product]という名前のメンバーの世代番号を参照します。
[Product].CurrentMember.Gen_number
は、[Product]ディメンションの現在のメンバーの世代番号を参照します。
次に例を示します。
Filter ([Product].Members, [Product].Gen_number > 1)
空のセットを返します。Product.Generationは1であるため、検索条件は、[Product].Membersの各タプルについて失敗します。
Filter ([Product].Members, [Product].CurrentMember.Gen_number > 1)
最上位のディメンション・メンバー[Product]を除くProductディメンションのすべてのメンバーを返します。
<string_property> ::= <member>.<property_specification>
ノート:
前述のルールは、MEMBER_NAME、MEMBER_ALIASなどの文字列プロパティを指定します。
<property_specification> ::=
MEMBER_NAME
| MEMBER_ALIAS
| GEN_NUMBER
| LEVEL_NUMBER
| <dimension-name-specification>
| <uda-specification>
ノート:
<dimension-name-specification>
は<property_specification>
内で属性dimension-name仕様である必要があります。属性ディメンション名は、対応する基本ディメンションのメンバーのプロパティとして扱われます。
<uda-specification> ::=
<uda-specification>
は、ユーザー定義属性(UDA)を指定します。UDAプロパティは、ブール値のプロパティです。TRUE値は、メンバーにUDAが存在することを示します。次に例を示します。
Filter (Market.Members, Market.CurrentMember.[Major Market])
アウトライン内で"Major Market" UDAを使用してタグ付けされたMarketディメンション・メンバーを返します。
<property_expr_specification> ::=
PROPERTY_EXPR ( <dimension name>,
<property_name>,
<member_value_expression>,
<display_name>)
<property_name> ::=
<property_specification>
<display_name> ::=
<character_string_literal>
プロパティの詳細は、MDXプロパティについてを参照してください。
次のルールは、集約ストレージ・アプリケーションでのEssbaseアウトライン式の構文を説明しています。
<formula_specification> ::= <nonempty_specification>
<numeric_value_expression>
<nonempty_specification> ::= NONEMPTYMEMBER <nonempty_member_list>
| NONEMPTYTUPLE ( <nonempty_member_list> )
<nonempty_member_list> ::= <nonempty_member_name>
| <nonempty_member_name> [ , <nonempty_member_list> ]
<nonempty_member_name> ::=
An Essbase member name or a calculated member name (only when used in another calculated member).
ノート:
NONEMPTYMEMBERディレクティブのメンバー名(または複数の名前が指定されている場合はそれらのメンバー名)は、それが指定されている計算メンバーまたは式メンバーと同じディメンションに属している必要があります。
<signed_numeric_literal> ::=
[+|-] <unsigned_numeric_literal>
<unsigned_numeric_literal> ::=
<exact_numeric_literal>
| <approximate_numeric_literal>
<exact_numeric_literal> ::=
<unsigned_integer>[.<unsigned_integer>]
| <unsigned_integer>.
| .<unsigned_integer>
<unsigned_integer> ::=
{<digit>}...
<approximate_numeric_literal> ::=
<mantissa>E<exponent>
<mantissa> ::=
< exact_numeric_literal>
<exponent> ::=
[<sign>]<unsigned_integer>
<digit> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
ノート:
数値は、E文字を使用して科学的記数法(仮数/指数)で入力することもできます。
<character_string_literal> ::=
<quote>[<character_representation>...] <quote>
<character_representation> ::=
<nonquote_character>
| <quote_symbol>
<nonquote_character> ::=
Any character in the character set other than <quote>
<quote_symbol> ::=
<quote> <quote>
<quote> ::= "
The following is the syntax for Format Strings in Essbase:
MdxFormat( string_value_expression )