NOT IN Select语句返回0值

沙兹

我有变量ID和代码的数据。示例数据如下所示:

ID   Code
abc  00
def  00
ghi  00
def  23
jkl  00
mno  20 
pqr  24

ID可以具有多个不同代码的值。我正在尝试计算每个ID的所有可能的代码组合(共有15种)

我的代码:

select id, code from data.test 
where id in (select id from data.test where code = 00 )
and id in ('abc','def','ghi','jkl','mno','pqr') 

正常工作(返回4行),但是此代码:

select id, code from data.test 
where id not in (select id from data.test where code = 23)
and id in ('abc','def','ghi','jkl','mno','pqr') 

返回0行?它应该返回3行。

我正在使用Teradata SQL Assistant版本15.00.0.02。

任何帮助,将不胜感激。

戈登·利诺夫(Gordon Linoff)

原因之一,not in与子查询失败,是因为价值观的一个(id你的情况)是NULL在这种情况下,NOT IN表达式永远不会返回true。解决此问题的一种方法:

select id, code
from data.test 
where id not in (select id from data.test where code = 23 and id is not null) and
      id in ('abc', 'def', 'ghi', 'jkl', 'mno', 'pqr') 

另一种方法是使用NOT EXISTS

select t.id, t.code
from data.test t
where not exists (select 1 from data.test t2 where t.code = 23 and t2.id = t.id) and
      t.id in ('abc', 'def', 'ghi', 'jkl', 'mno', 'pqr') 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从SELECT语句返回的PHP打印特定值

来自分类Dev

PHP MySQL SELECT 语句返回空值

来自分类Dev

SELECT语句中的SELECT返回0个计数

来自分类Dev

为什么我的PostgreSQL SELECT语句返回0行?

来自分类Dev

带SELECT的准备好的语句返回0

来自分类Dev

Redshift SQL语句,如果select语句返回任何行,它将返回1或0

来自分类Dev

通过EXECUTE IMMEDIATE从select语句返回值

来自分类Dev

if语句,以确定在表值函数中返回哪个SELECT

来自分类Dev

Rails select语句返回哈希值。怎么了?

来自分类Dev

如何设置列以在select语句中返回值

来自分类Dev

仅返回SQLite Select语句中的Last值

来自分类Dev

SQLIte SELECT语句在Visual C#中返回相同的值

来自分类Dev

为什么返回0语句不传递值零?

来自分类Dev

为什么SELECT ... WHERE id = a如果值是0则返回结果

来自分类Dev

select()将如何返回-1、0或1以外的任何值?

来自分类Dev

在select语句中使用表值函数返回值

来自分类Dev

在select语句中使用表值函数返回值

来自分类Dev

为什么 SELECT 语句在未找到匹配记录时似乎返回了“NULL”值以外的值

来自分类Dev

迭代从select语句返回的行数

来自分类Dev

Select语句返回重复的数据

来自分类Dev

返回特定值的ELSE IF语句

来自分类Dev

SSRS if 语句返回空值

来自分类Dev

仅返回SQLite Select语句中的最后一个值

来自分类Dev

SQL查询仅返回SELECT语句中第一列的值

来自分类Dev

在运行SELECT语句时,Date列中的空白值返回为1900/01/01

来自分类Dev

PDO Select语句返回2维数组,如何从该数组打印一个值

来自分类Dev

Select语句返回每一行的所有ID值

来自分类Dev

SQL select语句检查两列并从第三列返回值

来自分类Dev

有人可以告诉我如何计算select prepare语句的返回值吗?

Related 相关文章

  1. 1

    从SELECT语句返回的PHP打印特定值

  2. 2

    PHP MySQL SELECT 语句返回空值

  3. 3

    SELECT语句中的SELECT返回0个计数

  4. 4

    为什么我的PostgreSQL SELECT语句返回0行?

  5. 5

    带SELECT的准备好的语句返回0

  6. 6

    Redshift SQL语句,如果select语句返回任何行,它将返回1或0

  7. 7

    通过EXECUTE IMMEDIATE从select语句返回值

  8. 8

    if语句,以确定在表值函数中返回哪个SELECT

  9. 9

    Rails select语句返回哈希值。怎么了?

  10. 10

    如何设置列以在select语句中返回值

  11. 11

    仅返回SQLite Select语句中的Last值

  12. 12

    SQLIte SELECT语句在Visual C#中返回相同的值

  13. 13

    为什么返回0语句不传递值零?

  14. 14

    为什么SELECT ... WHERE id = a如果值是0则返回结果

  15. 15

    select()将如何返回-1、0或1以外的任何值?

  16. 16

    在select语句中使用表值函数返回值

  17. 17

    在select语句中使用表值函数返回值

  18. 18

    为什么 SELECT 语句在未找到匹配记录时似乎返回了“NULL”值以外的值

  19. 19

    迭代从select语句返回的行数

  20. 20

    Select语句返回重复的数据

  21. 21

    返回特定值的ELSE IF语句

  22. 22

    SSRS if 语句返回空值

  23. 23

    仅返回SQLite Select语句中的最后一个值

  24. 24

    SQL查询仅返回SELECT语句中第一列的值

  25. 25

    在运行SELECT语句时,Date列中的空白值返回为1900/01/01

  26. 26

    PDO Select语句返回2维数组,如何从该数组打印一个值

  27. 27

    Select语句返回每一行的所有ID值

  28. 28

    SQL select语句检查两列并从第三列返回值

  29. 29

    有人可以告诉我如何计算select prepare语句的返回值吗?

热门标签

归档