Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Позволяет условно возвращать конкретные значения из нескольких сравнений. Существует два типа кейс-утверждений:
Простой падежный оператор, который сравнивает выражение с набором простых выражений для возврата определённых значений.
Поискованное падежное утверждение, которое оценивает набор булевых выражений для возврата определённых значений.
Syntax
Simple Case Statement
CASE [input_expression]
WHEN when_expression THEN when_true_result_expression
[...n]
[ELSE else_result_expression]
END
Search Case Statement
CASE
WHEN Boolean_expression THEN when_true_result_expression
[...n]
[ELSE else_result_expression]
END
Arguments
input_expression
Многомерное выражение (MDX), которое разрешается в скалярное значение.
when_expression
Заданное скалярное значение, по которому оценивается input_expression , которое при вычислении в истину возвращает скалярное значение else_result_expression.
when_true_result_expression
Скалярное значение возвращается, когда клауза WHEN вычисляется в true.
else_result_expression
Скалярное значение возвращается, когда ни одна из клауз WHEN не вычисляется в true.
Boolean_expression
Выражение MDX, которое оценивается до скалярного значения.
Remarks
Если нет клаузы ELSE, и все клаузы WHEN вычисляются в false, результат — пустая ячейка.
Простое выражение падежа
MDX оценивает простое выражение случая, разрешив input_expression в скалярное значение. Это скалярное значение затем сравнивается со скалярным значением when_expression. Если два скалярных значения совпадают, оператор CASE возвращает значение when_true_expression. Если два скалярных значения не совпадают, вычисляется следующая клауза WHEN. Если все клаузы WHEN имеют значение false, возвращается значение else_result_expression из клаузы ELSE, если оно есть.
В следующем примере показатель количества заказов у реселлера оценивается по нескольким пунктам КОГДА и даёт результат, основанный на стоимости показателя количества заказов реселлера за каждый год. Для значений Reseller Order Count, которые не совпадают со скалярным значением, указанным в when_expression в клаузе WHEN, возвращается скалярное значение else_result_expression .
WITH MEMBER [Measures].x AS
CASE [Measures].[Reseller Order Count]
WHEN 0 THEN 'NONE'
WHEN 1 THEN 'SMALL'
WHEN 2 THEN 'SMALL'
WHEN 3 THEN 'MEDIUM'
WHEN 4 THEN 'MEDIUM'
WHEN 5 THEN 'LARGE'
WHEN 6 THEN 'LARGE'
ELSE 'VERY LARGE'
END
SELECT Calendar.[Calendar Year] on 0
, NON EMPTY [Geography].[Postal Code].Members ON 1
FROM [Adventure Works]
WHERE [Measures].x
Выражение поискового падежа
Чтобы использовать выражение падежа для выполнения более сложных оценок, используйте поисковое выражение падежа. Эта вариация поискового выражения позволяет оценить, находится ли входное выражение в диапазоне значений. MDX оценивает клаузы WHEN в порядке их появления в операторе CASE.
В следующем примере показатель количества заказов реселлера оценивается по указанному Boolean_expression для каждого из нескольких условий WHEN. Результат возвращается на основе стоимости показателя количества заказов у реселлеров за каждый год. Поскольку клаузы WHEN вычисляются в порядке их появления, всем значениям больше 6 можно легко присвоить значение «ОЧЕНЬ БОЛЬШОЙ» без необходимости явно указывать каждое значение. Для значений количества заказов у реселлеров, не указанных в клаузе WHEN, возвращается скалярное значение else_result_expression .
WITH MEMBER [Measures].x AS
CASE
WHEN [Measures].[Reseller Order Count] > 6 THEN 'VERY LARGE'
WHEN [Measures].[Reseller Order Count] > 4 THEN 'LARGE'
WHEN [Measures].[Reseller Order Count] > 2 THEN 'MEDIUM'
WHEN [Measures].[Reseller Order Count] > 0 THEN 'SMALL'
ELSE "NONE"
END
SELECT Calendar.[Calendar Year] on 0,
NON EMPTY [Geography].[Postal Code].Members on 1
FROM [Adventure Works]
WHERE [Measures].x