Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是不是;不是";是否应用于SQL中的其他逻辑运算符?_Sql - Fatal编程技术网

是不是;不是";是否应用于SQL中的其他逻辑运算符?

是不是;不是";是否应用于SQL中的其他逻辑运算符?,sql,Sql,我在w3resource.com“网站上练习SQL,在理解这个练习的解决方案时遇到了问题 链接: 问题:编写一条SQL语句,以显示那些不是在2012-09-10日期发布的订单以及由ID为5005及以下的销售人员发布的订单,或者那些采购金额为1000.00及以下的订单 样本表:订单 ord_no purch_amt ord_date customer_id salesman_id ---------- ---------- ---------- -----------

我在w3resource.com“网站上练习SQL,在理解这个练习的解决方案时遇到了问题

链接:

问题:编写一条SQL语句,以显示那些不是在2012-09-10日期发布的订单以及由ID为5005及以下的销售人员发布的订单,或者那些采购金额为1000.00及以下的订单

样本表:订单

ord_no      purch_amt   ord_date    customer_id  salesman_id
----------  ----------  ----------  -----------  -----------
70001       150.5       2012-10-05  3005         5002
70009       270.65      2012-09-10  3001         5005
70002       65.26       2012-10-05  3002         5001
70004       110.5       2012-08-17  3009         5003
70007       948.5       2012-09-10  3005         5002
70005       2400.6      2012-07-27  3007         5001
70008       5760        2012-09-10  3002         5001
70010       1983.43     2012-10-10  3004         5006
70003       2480.4      2012-10-10  3009         5003
70012       250.45      2012-06-27  3008         5002
70011       75.29       2012-08-17  3003         5007
70013       3045.6      2012-04-25  3002         5001
我的解决方案:

select * from orders where (ord_date <> '2012-09-10' and salesman_id <= '5005') or purch_amt <= '1000';
SELECT * FROM  orders WHERE NOT ((ord_date ='2012-09-10'AND salesman_id > 5005) OR purch_amt > 1000.00);
问题:在他们的解决方案中,“不”陈述适用于“或”可接受吗?哪种解决方案是正确的


谢谢

接受一个操作数。在此表达式中:

WHERE NOT ((ord_date ='2012-09-10'AND salesman_id > 5005) OR purch_amt > 1000.00);
操作数是整个带括号的表达式。您的表达式不等效,但上面的表达式等效于以下表达式,因为
非(A或B)
等效于
(非A和非B)
非(A和B)
等效于
(非A或非B)

WHERE NOT(订单日期='2012-09-10'和销售员id>5005)和
非(采购金额>1000.00)
其中不包括(订单日期为“2012-09-10”,销售人员id>5005)和
采购(金额5005)和

谢谢你的回答,但是根据文本,他们的回答正确吗?@GuissousAllaeddine…英语是含糊不清的,因为不清楚
not
到底指的是什么。我认为你的解释更接近英语。
not
的一个子词,因此,不应否定《守则》或《守则》——对梅的阅读。练习问题是模棱两可的,任何一个答案都可以是解释
WHERE NOT (ord_date = '2012-09-10' AND salesman_id > 5005) AND
      NOT (purch_amt > 1000.00)

WHERE NOT (ord_date = '2012-09-10' AND salesman_id > 5005) AND
      purch_amt <= 1000.00

WHERE (NOT (ord_date = '2012-09-10') OR NOT (salesman_id > 5005)) AND
      purch_amt <= 1000.00

WHERE (ord_date <> '2012-09-10' OR salesman_id <= 5005) AND
      purch_amt <= 1000.00