②nvlオペレータの第一引数「(if (= .Country null) '')」を評価
このとき、.Countryは「(空文字列)」であるため、 =オペレータの結果は、falseとなります。
(= .Country null) → false
結果、(if (= .Country null) '')は、(if false '') となる。
(if (= .Country null) '') → (if false '')
つぎに、if オペレータは、引数1がfalseで、かつ引数3が指定されていなければ、nullを返すので、
(if false '') → null
結果として、nvlオペレータの第一引数「(if (= .Country null) '')」を評価すると、
「null」となります。
③nvlオペレータの第一引数が、②のとおり、nullであるため、
つづく、nvlオペレータの第二引数「 (if (= .Country '日本') 'アジア' '欧米')」を評価します。
②と同じ順序で評価していきます。
(= .Country '日本') → false
(if false 'アジア' '欧米') → 欧米
④ ②③より、
nvlの第一引数 → null
nvlの第二引数 → 欧米
でした。最初の式に当てはめると、
(nvl null 欧米)
となります。
nvlオペレータは、nullではない最初の引数を返す機能です。
最後にこれを評価し、「欧米」という結果を得ることになります。
(nvl null 欧米) → 欧米