最接近的类比是SWITCH()
函数,例如
甲骨文:
SELECT supplier_name,
decode(supplier_id, 10000, 'IBM',
10001, 'Microsoft',
10002, 'Hewlett Packard',
'Gateway') result
FROM suppliers;
访问数据库引擎
SELECT supplier_name,
SWITCH(supplier_id = 10000, 'IBM',
supplier_id = 10001, 'Microsoft',
supplier_id = 10002, 'Hewlett Packard',
TRUE, 'Gateway') AS result
FROM suppliers;
请注意,使用该SWITCH()
函数,您每次都必须提供完整的谓词,因此,您不仅可以仅使用supplier_id。对于默认值,请使用对人类读者显而易见的谓词,例如TRUE1 = 1
或实际上是TRUE
:)
可能不明显的是该SWITCH()
函数中的逻辑不会短路,这意味着该函数中的每个表达式都必须能够正确地求值。如果您需要逻辑短路,则需要使用嵌套IIF()
函数。