我正在尝试用多个"and"语句检索输出。在添加特定的"and"语句之前,我的代码运行良好。
这是我正在使用的代码
select OC.CUSTOMER_ID,OC.CUSTOMER_FNAME,OC.CUSTOMER_LNAME,OH.PAYMENT_MODE,OH.ORDER_ID,SUM(OI.PRODUCT_QUANTITY) AS PRODUCT_QUANTITY,OH.ORDER_STATUS
FROM online_customer AS OC JOIN order_header AS OH
ON OC.CUSTOMER_ID=OH.CUSTOMER_ID
JOIN order_items AS OI
ON OH.ORDER_ID=OI.ORDER_ID
WHERE OH.ORDER_STATUS LIKE '%Shipped%'AND
OH.PAYMENT_MODE LIKE '%CREDIT CARD%' AND OH.PAYMENT_MODE LIKE '%NET BANKING%' AND
OH.ORDER_ID IN (SELECT ORDER_ID FROM ORDER_ITEMS GROUP BY ORDER_ID HAVING SUM(PRODUCT_QUANTITY)>10)
GROUP BY ORDER_ID;
当我添加这一行时,问题就会弹出OH.PAYMENT_MODE LIKE '%CREDIT CARD%' AND OH.PAYMENT_MODE LIKE '%NET BANKING%'
当我加上这一行时,只有表头导出输出1。但当我删除该语句时,输出工作的精细输出2。
"与";是指";对于同一行,这两个条件都必须为真";。
不存在OH.PAYMENT_MODE
同时包含"信用卡">和"净银行"的行,因此任何行的条件都不成立。
您希望查找其中任一条件为true的行,因此需要一个";或";。然而,总是要小心地混合";"与";以及";OR";;最好的想法是使用括号,因此... AND ( OH.PAYMENT_MODE LIKE '%CREDIT CARD%' OR OH.PAYMENT_MODE LIKE '%NET BANKING%' ) AND ...