gpt4 book ai didi

sql - 删除具有特定状态值的行(客户)

转载 作者:行者123 更新时间:2023-11-29 13:49:35 28 4
gpt4 key购买 nike

我有一个名为 flightbooking 的表。该表由字段组成,包括标有“R”或“C”的状态、已保留和已取消。

Flightbooking Table

我想弄清楚的是允许删除状态为“C”的记录,但如果下一行的状态为“R”,则不应删除。

[编辑]:我忘了补充一点,我需要从 leadcustomer 表中删除一条客户记录。

所以总结一下如果CustomerID为2且status = 'C' 客户记录可以被删除。否则,如果 CustomerID 为 3 且 status = 'R',则无法删除客户记录。

此外,通过使用

DELETE FROM leadcustomer
WHERE CustomerID = 2;

(此 CustomerID 记录的状态为“C”,因此我应该可以删除它,但外键违反了约束。)

最佳答案

当你想要有行间依赖时,通常你必须使用窗口函数。以下可能会起到作用:

DELETE FROM flightbooking WHERE 
flightbooking.id = (SELECT id FROM (
SELECT id,status,lead(status) OVER (ORDER BY id) FROM flightbooking) a
WHERE a.status='C' AND a.lead <> 'R') ;

关于sql - 删除具有特定状态值的行(客户),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43308620/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com