首页 > 解决方案 > 存储过程 SQL 中的比较运算符

问题描述

希望你能帮忙。

我有这个存储过程。工作正常,但我在存储过程中使用比较运算符时遇到问题。这里的重点是找到开过 10000 辆以上的汽车。

我一直在寻找答案,但由于某种原因,找不到解决方案。

elimiter //

CREATE PROCEDURE DISTANCE (kilometerafstand INT)
BEGIN
    SELECT bil.registreringsnummer, bil.kilometerstand, biltype.maerke, biltype.model
    FROM bil
    INNER JOIN biltype ON bil.id = biltype.id 
    WHERE bil.kilometerstand = kilometerafstand;
END;

//

call DISTANCE ( > 10000)  

代码工作正常。这只是我呼叫 DISTANCE 中的运营商。

谢谢!

标签: sqlstored-procedurescomparison-operators

解决方案


你不能有这样的比较运算符。你可以多一个参数

 operator varchar 

你可以有自定义逻辑,如eq, ne, lt, gt,反之亦然。你可以写

where (operator = 'eq' and kilometerstand = kilometerafstand )
  or (operator = 'gt' and kilometerstand > kilometerafstand
  or ....

推荐阅读