sql - 存储过程 SQL 中的比较运算符

标签 sql stored-procedures comparison-operators

希望能帮到你。

我有这个存储过程。工作正常,但我在存储过程中使用比较运算符时遇到问题。这里的重点是找到行驶里程超过 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。

谢谢!

最佳答案

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

 operator varchar 

并且您可以拥有自定义逻辑,例如 eqneltgt,反之亦然。你可以写

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

关于sql - 存储过程 SQL 中的比较运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64060734/

相关文章:

Postgresql NOT NULL AND <> '' 与 NOT NULL OR <> ''

scala - 比较匹配器在混合数字类型上失败

c - 为什么 while (1 < a < 5) 是一个无限循环?

MySQL:在 1:N 关系中哪个更快?加入或两个查询?

sql - PostgreSql:只选择周末

sql-server - sql存储过程为什么叫存储过程

php - 在 mysql 字段上使用数组函数

java - Oracle CONCURRENCY_WAIT_TIME 在这里意味着什么?

sql - 在 SQL Server 中创建连续的发票编号而无需竞争条件

sql - 触发器或 SP : what should I use in my case?