Skip to content

解码

解码(Arg0, Arg1, Arg2, ...

Arg0Arg1 时,输出 Arg2。当 Arg0Arg3 时,输出 Arg4。重复直到没有参数对。此时,如果还有一个剩余的参数,则将其用作默认值。如果没有,则输出为 NULL

注意

NULL 视为可以匹配的文字值。

因此,以下内容:

DECODE(A, NULL, 0, 'x', 1, 'y', 2, 'z', 3, -1)

在逻辑上等价于:

CASE WHEN A IS NULL THEN 0
     WHEN A = 'x' THEN 1
     WHEN A = 'y' THEN 2
     WHEN A = 'z' THEN 3
     ELSE -1 END