gpt4 book ai didi

mysql - 在 where 子句中选择带有 IF 的记录?

转载 作者:行者123 更新时间:2023-11-28 23:24:11 24 4
gpt4 key购买 nike

我需要从表中提取一些数据

例如:

+-------------+------------+-------------+------------+  
| Code | Progress | QTY | Faulty |
+-------------+------------+-------------+------------+
| A | 10 | 100 | 0 |
+-------------+------------+-------------+------------+
| B | 1 | 10 | 0 |
+-------------+------------+-------------+------------+
| C | 4 | 0 | 1 |
+-------------+------------+-------------+------------+
| D | 7 | 100 | 0 |
+-------------+------------+-------------+------------+


SELECT Code, Progress, QTY, Faulty
FROM myTable
WHERE Progress <> 7 AND Progress = 4 AND QTY > 0

如何选择所有具有- 进度 <> 7- 和进度 4,但仅当进度为大于 0 的行的数量时- Faulty 的值为 1?

最佳答案

请试一试

SELECT 
Code,
Progress,
QTY,
Faulty
FROM myTable
WHERE Progress NOT IN(4,7)
OR (Progress = 4 AND QTY > 0 AND Faulty = 1)

解释:

条件类似于 Progress <> 7将带来具有 Progress = 4 的记录.该特定记录可能没有 QTY > 0 AND Faulty = 1 .

这就是为什么要使用 Progress NOT IN (4,7)作为第一个条件。

现在您需要担心您提到的第二个案例,它非常简单。

(Progress = 4 AND QTY > 0 AND Faulty = 1)

记录有Progress = 4 having QTY >0 and Faulty = 1将被带入最终的结果集中。

关于mysql - 在 where 子句中选择带有 IF 的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40128181/

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