sql - 存储过程 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 中的运营商。
谢谢!
解决方案
你不能有这样的比较运算符。你可以多一个参数
operator varchar
你可以有自定义逻辑,如eq
, ne
, lt
, gt
,反之亦然。你可以写
where (operator = 'eq' and kilometerstand = kilometerafstand )
or (operator = 'gt' and kilometerstand > kilometerafstand
or ....
推荐阅读
- python - Python附加具有numpy数组类型的类属性
- scala - 没有 var scala 的累积和
- java - 为什么我的线程在访问同步方法时会给我这个输出?
- python - PySpark - 在数据框中显示列数据类型的计数
- ios - 如何使用 react-navigation 检测路线更改或将路线与屏幕匹配
- sockets - 协议 Minecraft 聊天套接字 Java
- javascript - 允许过滤器按次要条件排序和缩小范围
- c++ - 模板实现文件中的匿名命名空间
- node.js - 如何在 node.js 请求中模拟 curl -F 选项
- android - 工具栏出现在 android 应用程序的底部而不是顶部