SQL或运算符替代方案

时间:2014-12-13 14:15:32

标签: sql ms-access

我尝试选择一个名为PRODUCT的表,并且只显示V_CODE = 2200055000的行。问题是我无法使用OR语句作为我的最终答案。有没有其他方法可以删除OR并获得相同的结果?见下文:

SELECT * FROM PRODUCT_revised WHERE V_CODE = 22000 OR V_CODE = 55000;

4 个答案:

答案 0 :(得分:5)

您可以使用IN

SELECT * FROM PRODUCT_revised WHERE V_CODE IN(22000, 55000);

答案 1 :(得分:2)

首选解决方案是使用in

SELECT *
FROM PRODUCT_revised
WHERE V_CODE IN (22000, 55000);

但是,您的代码应该有效。

答案 2 :(得分:2)

IN以外的另一种方式是使用UNION

SELECT * FROM PRODUCT_revised WHERE V_CODE = 22000
UNION ALL
SELECT * FROM PRODUCT_revised WHERE V_CODE = 55000;

或想要使用De Morgan法律:

SELECT * FROM PRODUCT_revised 
WHERE NOT (NOT (V_CODE = 22000) AND NOT (V_CODE = 55000));

答案 3 :(得分:2)

使用数学技巧:

SELECT * FROM PRODUCT_revised WHERE (V_CODE - 22000) * (V_CODE - 55000) = 0;