如果在SWITCH CASE语句中

时间:2012-10-16 16:00:21

标签: mysql

我收到了以下问题:

SELECT      ua.attribute_id, ma.attribute_name, ma.attribute_type, ma.attribute_default, ma.attribute_format,
    (CASE ma.attribute_type
        WHEN 0 THEN ua.attribute_default
        WHEN 1 THEN ua.attribute_bool
        WHEN 2 THEN ua.attribute_combo
        WHEN 3 THEN ua.attribute_decimal
        WHEN 4 THEN ua.attribute_integer
        WHEN 5 THEN ua.attribute_decimal
    END) AS attribute_value 
FROM        units_attributes AS ua
LEFT JOIN   models_attributes AS ma ON ma.attribute_id = ua.attribute_id
WHERE       ua.unit_id = 1

我想为attribute_value添加一个IF。如果attribute_valueNULL,那么我想使用ua.attribute_default

我试图在AS之后使用IF语句,但它不起作用......

感谢。

1 个答案:

答案 0 :(得分:4)

请尝试使用COALESCE(),而不是使用IF。它需要多个参数并返回第一个非空值。

COALESCE(attribute_value, ua.attribute_default)
相关问题