1

我收到以下查询:

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. 如果attribute_valueNULL,那我想用ua.attribute_default

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

谢谢。

4

1 回答 1

4

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

COALESCE(attribute_value, ua.attribute_default)
于 2012-10-16T16:01:48.360 回答