【发布时间】:2018-04-27 17:26:57
【问题描述】:
我对 PL/SQL 很陌生,但我想根据给定行中几个字段的值,为表中的所有条目填充一个空字段。 所以我想建立的逻辑是,但是在为汽车经销商设置表格时,我需要牢记几件事......
首先,按不同的 used_car_ids 分组,然后根据.....更新列
- 如果 used_car_id 列等于 new_car_id,并且 drive_mode 和 saftey_rating 均为 1,则将 Parking_Spot 编号设置为 1 作为最高优先级。
-
如果 used_car_id 列等于 new_car_id,但 drive_mode 为 1 且 saftey_rating 为 2,则将 Parking_Spot 列设置为 2 或可用的连续 Parking_Spot 编号
- 如果有更多与此类似的条件,但只有安全评级不同,我想继续将 Parking_Spot 编号增加到该条目的下一个可用的连续 Parking_spot 编号
如果 used_car_id 列等于 new_car_id,但 drive_mode 为 2 且 saftey_rating 为 1,则将 Parking_Spot 列设置为 3,或下一个可用的 Parking_Spot 编号
- 如果 used_car_id 列等于 new_car_id,但 drive_mode 为 2 且 saftey_rating 为 2,则将 Parking_Spot 编号设置为 4,或下一个可用的 Parking_Spot 编号
- 应用与上述相同的规则。
如果不满足最高优先级用例,则应将第 2 个用例视为最高优先级,并将其设为 Parking_Spot=1。
这是我理想中想要的一张小照片。因此,正如您在图片中看到的,停车位编号为 1 和 2,具体取决于 used_car_id、new_car_id、drive_mode 和 safety_rating 是否为 1 和 2,但是一旦 used_car_id 和 new_car_id 不同,停车位编号将增加到 3 和 4 .
我假设我需要一个函数来输入 4 个参数,然后根据这些字段返回一个数字作为停车位。但我仍然有点不确定如何去做。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
PL/SQL 是 Oracle 数据库的过程部分语言,但您已标记 mysql。您实际使用的是哪个?
-
正确标记!!!!如果这是 Oracle,为什么我会在您的问题上看到
MySQL标记??? -
对不起,请多多包涵。我不知道 PL/SQL 仅适用于 Oracle。这是一个 MySQL 数据库。我刚刚编辑了问题的名称和标签。感谢大家指出这一点。
标签: mysql sql stored-procedures stored-functions mysql-5.7