💡

CASEWHEN式は戻り値の型に気を付ける

2022/01/11に公開

MotionBoard Viewで扱える関数はあまり多くないですが、その中で便利なのがこのCASEWHEN句。

https://cs.wingarc.com/manual/mb/6.2/ja/UUID-24a4721c-c60c-0dd9-84e4-836a9352597e.html#UUID-75f72496-6116-b8fd-692c-46f8a58d5ea7_d38915e153451

条件の真偽によって、戻り値を返します。

CASEWHEN("dataitem1"<60, 'not passed', 'passed')

例えば日付項目がNULLだった場合、nullを返さないで、"未確定"という文字を返してほしいとき、

CASEWHEN("実査日" is null,'未確定',"日付項目")

とします。
しかし、これだとエラーになります。

'未確定'は文字型で戻ってくるのに対して、日付項目は日付型で戻ってしまうので、返ってくるもののデータ型が異なってしまうからです。

この場合、日付項目を文字型にして返ることが正しいので、

CASEWHEN("実査日" is null,'未確定',cast("日付項目" as char))

とします。

こうすると、返ってくるものが双方とも文字型となり、式が正常となります。

Discussion