基于两个条件编写SQLWHERE子句以排除行

基于两个条件编写SQLWHERE子句以排除行,sql,where-clause,Sql,Where Clause,您好,我有一个数据库,我想选择所有行,但不包括两个条件都满足的记录。我不知道如何写where子句来实现这一点 举例来说,表格如下: Name | Date | Country 我想选择除名称为Dave且日期>20180101的行以外的所有行。因此,行中的名称是Dave,但日期是20180101,名称不是Dave。选择* select * from table where name <> 'Dave' OR date <= '2018-01-01' 从桌子上 名字“Dave”

您好,我有一个数据库,我想选择所有行,但不包括两个条件都满足的记录。我不知道如何写where子句来实现这一点

举例来说,表格如下:

Name | Date | Country
我想选择除名称为Dave且日期>20180101的行以外的所有行。因此,行中的名称是Dave,但日期是20180101,名称不是Dave。

选择*
select *
from table
where name <> 'Dave' OR date <= '2018-01-01'
从桌子上 名字“Dave”或日期这是有用的地方。它声明
!(A和B)
也可以表示为
!A | | |!B
反之亦然:
!A | | |!B
可以是
!(A和B)

还有,
!(A | | B)
!A&&!B
!A&&!B
!(A | | B)


对于这个问题,您需要:
NOT('Dave'和>'20180101')
,这与上面的第一个案例相匹配。应用德·摩根定律会给你
而不是“戴夫”,或者到目前为止你试过什么吗?StackOverflow不是一个免费的代码编写服务,它希望您能够这样做。请更新您的问题,以显示您已经尝试过的内容,并显示您在某个应用程序中面临的特定问题。另外,您使用的是哪个版本的SQL?MySQL?SQL Server?神谕等等。第一个问题:你有没有试着自己写???如果有,它在哪里????否则,开始写。
'2018-01-01'
的反方向是

SELECT *
FROM [table]
WHERE [Name] <> 'Dave' OR [Date] <= '20180101'