IIF (MDX)
指定された論理式の値に応じて、2 つの値のいずれかを返します。
返りタイプ
構文および詳細
IIF(check_expression, expression1, expression2)
-
expression1 および expression2 は、数値式または 文字列式です。これらは、同じタイプである必要はありません。
InterSystems MDX システムでは、他のタイプの引数はサポートされていません。
NULL 値と比較するには、代わりに ISNULL 関数を使用します。
-
check_expression は論理式で、通常はメジャーまたはプロパティを定数と比較します。
check_expression が True の場合、この関数は、expression1 で指定された値を返します。True でない場合は、expression2 で指定された値を返します。
例
以下はその例です。
SELECT IIF(MEASURES.[%COUNT]<500, "fewer than 500", "500 or more") ON 0, diagd.MEMBERS ON 1 FROM patients
IIF
1 None 500 or more
2 asthma 500 or more
3 CHD fewer than 500
4 diabetes 500 or more
5 osteoporosis fewer than 500
バリエーションとして、以下のクエリは、%LABEL を使用して、データ列に適切なキャプションを適用します。
SELECT %LABEL(IIF(MEASURES.[%COUNT]<500, "fewer than 500", "500 or more"),"Patient Count") ON 0,
diagd.MEMBERS ON 1 FROM patients
Patient Count
1 None 500 or more
2 asthma 500 or more
3 CHD fewer than 500
4 diabetes 500 or more
5 osteoporosis fewer than 500
別の例として、以下のクエリは、プロパティの値を使用しています。
SELECT %LABEL(IIF(homed.h1.CURRENTMEMBER.PROPERTIES("Population")>20000,"big","small"),
"Town Size") ON 0,
homed.city.MEMBERS ON 1 FROM patients
Town Size
1 Cedar Falls big
2 Centerville big
3 Cypress small
4 Elm Heights big
5 Juniper small
6 Magnolia small
7 Pine small
8 Redwood big
9 Spruce small
以下の例は、メンバの名前を検証し、メジャーの表示を条件付きで抑制します。
WITH MEMBER MEASURES.iif AS 'IIF(homed.CURRENTMEMBER.PROPERTIES("name")="Pine"," ",
MEASURES.[%COUNT])' SELECT MEASURES.iif ON 0, homed.city.MEMBERS ON 1 FROM patients
iif
1 Cedar Falls 1,120
2 Centerville 1,106
3 Cypress 1,139
4 Elm Heights 1,078
5 Juniper 1,109
6 Magnolia 1,122
7 Pine
8 Redwood 1,128
9 Spruce 1,108