首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不包括使用和不使用记录的SQL

不包括使用和不使用记录的SQL
EN

Stack Overflow用户
提问于 2009-06-10 20:49:51
回答 5查看 3.8K关注 0票数 0

下面是我正在处理的一个查询:

代码语言:javascript
复制
SELECT  TBL_SUB_KEY AS port
      , poe.[TBL_COMPANY]
      , poe.[TBL_DIVISION_1]
FROM    dbo.TMVKTAB AS poe
WHERE   ( TBL_NUMBER = '8A' )
        AND ( TBL_SUB_KEY <> '' )
        AND ( poe.[TBL_COMPANY] <> '011'
              AND poe.[TBL_DIVISION_1] <> '11'
            )

我想要返回的是公司=‘011’/除法_1‘= '11’中所有而不是的记录。

我原以为合并()中的公司/部门会达到这个目的,但它没有。它消除了所有公司的“011”记录和所有部门的“11”记录。

然而,当我这样做时:

代码语言:javascript
复制
SELECT  TBL_SUB_KEY AS port
      , poe.[TBL_COMPANY]
      , poe.[TBL_DIVISION_1]
FROM    dbo.TMVKTAB AS poe
WHERE   ( TBL_NUMBER = '8A' )
        AND ( TBL_SUB_KEY <> '' )
        AND NOT ( poe.[TBL_COMPANY] = '011'
              AND poe.[TBL_DIVISION_1] = '11'
            )

它似乎得出了正确的结果。为什么会这样呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-10 20:55:47

这是一个布尔逻辑问题:

代码语言:javascript
复制
NOT (A and B) <=> NOT A  OR NOT B

即:

代码语言:javascript
复制
NOT ( poe.[TBL_COMPANY] = '011' AND poe.[TBL_DIVISION_1] = '11')

相当于:

代码语言:javascript
复制
( poe.[TBL_COMPANY] <> '011' OR poe.[TBL_DIVISION_1] <> '11')

阅读:

逻辑

票数 5
EN

Stack Overflow用户

发布于 2009-06-10 20:55:18

我认为与NOT相等的人将使用OR,如下所示:

代码语言:javascript
复制
SELECT  TBL_SUB_KEY AS port
      , poe.[TBL_COMPANY]
      , poe.[TBL_DIVISION_1]
FROM    dbo.TMVKTAB AS poe
WHERE   ( TBL_NUMBER = '8A' )
        AND ( TBL_SUB_KEY <> '' )
        AND ( poe.[TBL_COMPANY] <> '011'
              OR poe.[TBL_DIVISION_1] <> '11'
            )
票数 3
EN

Stack Overflow用户

发布于 2009-06-10 20:52:52

代码语言:javascript
复制
where x and (y and z)

是相同的

代码语言:javascript
复制
x and y and z

然而,

代码语言:javascript
复制
where x and not (y and z)

是你想要的,而且很管用。

试试这个:

代码语言:javascript
复制
SELECT  TBL_SUB_KEY AS port
      , poe.[TBL_COMPANY]
      , poe.[TBL_DIVISION_1]
FROM    dbo.TMVKTAB AS poe
WHERE   ( TBL_NUMBER = '8A' )
        AND ( TBL_SUB_KEY <> '' )
        AND NOT ( poe.[TBL_COMPANY] = '011'
                  AND poe.[TBL_DIVISION_1] = '11'
                )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/978074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档