查询中的大小写提供了未定义的属性错误

时间:2017-05-09 03:14:32

标签: mysql sql

我正在尝试在查询中使用CASE。我必须计算required_number和vehicle_quantity之间的差异。如果它小于或等于0,那么我需要值0否则是差值。我正在尝试直接在phpmyadmin中使用代码。但是我收到了错误:

Notice in ./libraries/sql-parser/src/Utils/Query.php#427
 Undefined property: SqlParser\Components\CaseExpression::$expr

这是我到目前为止所尝试的查询。

SELECT
    required_number,
    vehicle_quantity,
    CASE
WHEN (
    required_number - vehicle_quantity
) <= 0 THEN
    '0'
ELSE
    (
        required_number - vehicle_quantity
    )
END AS income_amt
FROM
    vehicles
WHERE
    id = 22

任何人都可以帮助我在查询中犯了什么错误。谢谢。

2 个答案:

答案 0 :(得分:3)

试试这个:

SELECT required_number,
       vehicle_quantity,
       (CASE
            WHEN ((required_number - vehicle_quantity) <=0) THEN 0
            ELSE (required_number - vehicle_quantity)
        END) AS extra
FROM vehicles
WHERE mun_id=22

答案 1 :(得分:1)

尝试这个:你必须使用0而不是'0',因为你正在进行基于整数的计算,所以你不能定义字符串

SELECT
    required_number,
    vehicle_quantity,
    CASE WHEN (required_number - vehicle_quantity) <= 0 THEN 
        0 
    ELSE 
        (required_number - vehicle_quantity) 
    END AS income_amt
FROM vehicles
WHERE id = 22