gpt4 book ai didi

sql - 除非存在变量,否则使用 NOT LIKE 排除

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

我正在从事基于股票的零售数据库的迁移工作。

当产品是一次性订单时,产品代码具有前导 CO

我们不想接收 CO 产品,除非它们当前有库存、库存订单或客户订单

我尝试了以下和一些 CASE 变体,但无济于事

SELECT prdcod,
stkqty,
ordqty,
csoqty
FROM prdtbl
WHERE prdtbl.prdcod NOT LIKE '*%'
AND (prdcod NOT LIKE 'CO%' AND stkqty >0 AND ordqty >0 AND csoqty >0);

仅当库存数量、ordqty 和 csqty 都小于 1/大于 0 时才需要使用 NOT LIKE 'CO%' 函数,如果其中任何一列中有数量,我们就需要保留产品。

示例数据集在下面的链接中(没有上面的最后一个查询行)。我希望在这种情况下排除第 19 行和第 20 行。

https://lh5.googleusercontent.com/qTE1Av9i0x0BSjv_xAMj18bhX14cNWQPW9iYIBtpk4a6imhFiMRd7jRjFim_vPHxzcgu9h4xU9t8opA=w1920-h1070

如有任何想法,我们将不胜感激!

** 我仍然需要返回可能有 0 库存或订单数量的正常产品代码

最佳答案

对条件使用

SELECT prdcod,
stkqty,
ordqty,
csoqty
FROM prdtbl
WHERE prdtbl.prdcod NOT LIKE '*%'
AND (prdcod NOT LIKE 'CO%'
or (prdcod like 'CO%'
AND (stkqty >0
OR ordqty >0
OR csoqty >0
)
)
)

所以这句话的意思是:

排除所有像“CO%”这样的值,除非其中一个数量值大于 0

关于sql - 除非存在变量,否则使用 NOT LIKE 排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44562361/

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