メインコンテンツにスキップ
Workday User Guide
最終更新: 2023-06-23
概念: Prism 式言語

概念: Prism 式言語

Prism Analytics には、関数と演算子で構成される独自の式言語が含まれています。Prism 式言語を使用して
式 ()
を作成します。この式を使用して、新しい値を作成したり、既存の値をフィルタリングしたりできます。
式は、フィールド、定数値、演算子、および関数を組み合わせて値を計算または生成します。式は、数値またはテキスト値などの特定のフィールド型の値を出力します。単純な式は、単一の定数値、指定されたフィールドの値、または関数のみになります。演算子を使用して、2 つ以上の単純な式を複雑な式に結合できます。
次のデータセットで式を使用できます。
  • 計算フィールド
    式を使用して、ソース データに対して操作される計算フィールドを定義します。計算フィールドの式は、計算または条件に基づいてその値を生成し、入力行ごとに値を返します。計算フィールドの式には、他のフィールド、定数、数学演算子、比較演算子、または組み込みの行関数からの値を含めることができます。
  • フィルタ ステージ
    フィルタ ステージで式を使用して、データセットのソース データの範囲を制限します。
式ビルダーは、データセットで計算フィールドの式を作成するのに役立ちます。データセット内の使用可能なフィールドと、Prism 関数のリストが表示されます。式の正しい構文や入力フィールドのタイプなどを検証します。

関数の入力と出力

関数は、1 つ以上の入力値を受け取り、出力値を 1 つ返します。入力値には、リテラル値または値を含むフィールドの名前を指定できます。いずれの場合でも、入力値はテキストまたは整数などの特定のフィールド型であることが想定されます。例: CONCAT() 関数は、テキスト入力を結合し、新しいテキストを出力します。
この例では、CONCAT() 関数を使用して、リテラル スラッシュ文字で区切られた
()、
日 ()
年 ()
の値を連結する方法を示します。
CONCAT([month],"/",[day],"/",[year])
関数の戻り値は、入力の型と同じである場合もありますが、まったく新しいフィールドの型である場合もあります。例: TO_DATE() 関数は、入力としてテキストを受け取り、日付値を出力します。関数がテキストを想定しているが、入力として別のフィールド型が渡されている場合、この関数はエラーを返します。
通常、関数は、どのフィールド タイプまたはどのような目的に使用されるかによって分類されます。例: CONCAT() はテキスト関数で、TO_DATE() はフィールド型の変換関数です。

ネスト関数

関数では、他の関数を引数として受け取ることができます。例: CONCAT 関数を TO_DATE() 関数の引数として使用できます。最終的な結果は、10/31/2014 の形式の "日付" の値になります。
TO_DATE(CONCAT([month],"/",[day],"/",[year]),"MM/dd/yyyy")
入れ子関数は正しいフィールド型を返す必要があります。したがって、TO_DATE() はテキスト入力を想定し、CONCAT() はテキストを返すため、ネストは成功します。

現在のデータセットのフィールドを参照

すべてのフィールド名を角かっこで囲むことをお勧めします (
[]
)。例:
TO_INT([sales])
TO_INT([Sale Amount])
TO_INT([2013_data])
TO_INT([count])
フィールド名に "] (閉じの角かっこ) が含まれている場合は、"]" を二重にして、閉じの角かっこをエスケープする必要があります。このフィールド名があるとします。
[Total Sales]
フィールド名全体を角かっこで囲み、実際のフィールド名の一部である閉じかっこをエスケープします。
[[Total Sales]]]

リテラルのテキスト値

リテラルまたは実際のテキスト値を指定するには、値を二重引用符で囲みます (
"
)。例: この式は、
"性別"
フィールドの値を、
"男性
"、
"女性"
、または
"不明"
のリテラル値に変換します。
CASE WHEN [gender]=
"
M
"
THEN
"
male
"
WHEN [gender]=
"
F
"
THEN
"
female
"
ELSE
"
unknown
"
END
リテラル値内でリテラル 引用符をエスケープするには、リテラル引用符を二重にします。例:
CASE WHEN [height]="60
""
" THEN "5 feet" WHEN [height]="72
""
" THEN "6 feet" ELSE "other" END
REGEX() 関数は特殊ケースです。REGEX() 関数では、Text 式も引用符で囲みます。テキスト式にリテラル引用符が含まれている場合は、リテラル引用符を二重にします。例:
REGEX([height], "\d\'(\d)+
""
")

リテラル日付値

フィルタ ステージの式で日付値を参照するには、引用符やその他の句読点を使用せずに、この形式 (またはその短縮バージョン) を使用する必要があります。
yyyy-MM-dd
T
HH:mm:ss:SSS
Z
例:
[Order Date] BETWEEN 2016-06-01T00:00:00.000Z AND 2016-07-31T00:00:00.000Z
フィルタ式が完全形式の短縮バージョンである場合、Prism は、含まれない値にゼロ (0) を割り当てます。例: この式は次のようになります。
[Order Date] >= 2017-01-01
以下と同等である。
[Order Date] >= 2017-01-01T00:00:00.000Z
計算フィールドの式でリテラル日付値を参照するには、TO_DATE を使用して日付と時刻の構成要素の形式を指定する必要があります。TO_DATE は、Text リテラル引数と形式文字列を受け取ります。例:
CASE WHEN [Order Date]=TO_DATE("2013-01-01 00:00:59 PST","yyyy-MM-dd HH:mm:ss z") THEN "free shipping" ELSE "standard shipping" DONE

リテラル数値

リテラル数値の場合、特別なエスケープや書式設定を行わずに、数字のみを指定できます。例:
CASE WHEN [is married]=
1
THEN "married" WHEN [is married]=
0
THEN "not_married" ELSE NULL END