SQL在选择子查询中仅返回一行或空值

保险杠

在Oracle中,是否有可能在select语句中包含一个子查询,如果该子查询仅返回一行,则该查询返回一列;如果该子查询未返回一行或多于一行,则返回null。

例:

SELECT X,
  Y,
  Z,
  (SELECT W FROM TABLE2 WHERE X = TABLE1.X) /* but return null if 0 or more than 1 rows is returned */
FROM TABLE1;

谢谢!

PlantTheIdea

如何以不同的方式去做呢?一个简单的带有子查询的LEFT OUTER JOIN应该可以实现您想要的:

SELECT T1.X
 ,T1.Y
 ,T1.Z
 ,T2.W
FROM TABLE1 AS T1
LEFT OUTER JOIN (
    SELECT X
      ,W
    FROM TABLE2
    GROUP BY X,W
    HAVING COUNT(X) = 1
) AS T2 ON T2.X = T1.X;

这只会返回恰好具有1个X实例的项目,并在适当时将LEFT OUTER JOIN JOIN返回表中(不匹配为NULL)。

这也是ANSI兼容的,因此性能非常好。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sql查询仅返回一行

来自分类Dev

mysql子查询仅返回一行

来自分类Dev

选择最小值并仅返回第一行

来自分类Dev

SQL Server数据透视查询仅返回一行

来自分类Dev

如何使用LINQ从选择中仅返回一行?

来自分类Dev

如何使用LINQ从选择中仅返回一行?

来自分类Dev

在SQL中,如何通过比较时间属性为每个用户选择一行中的值,而仅选择最新行?

来自分类Dev

如何有选择地从前一行继承 SQL 服务器查询中的值

来自分类Dev

Teradata SQL - 选择不同的返回重复行,其中一行具有空值

来自分类Dev

子查询返回的一行以上

来自分类Dev

sql查询从多行中只选择一行

来自分类Dev

SQL仅选择第一行

来自分类Dev

查询仅返回Java中的空值

来自分类Dev

PHP-基本选择查询仅返回mysql数据库的第一行

来自分类Dev

从一张表中选择:单行子查询返回多于一行

来自分类Dev

SQL-选择一行中的最大值

来自分类Dev

如何修复单行子查询在以下查询中返回多于一行?

来自分类Dev

在SQL查询中使用avg()函数仅返回一行?

来自分类Dev

选择DataGridView中的最后一行时,将返回上一行的值,而不是所选行的值

来自分类Dev

选择DataGridView中的最后一行时,将返回上一行的值,而不是所选行的值

来自分类Dev

一列的每个值仅返回一行,不同列中的其他值仅返回一行

来自分类Dev

使用group_concat的查询仅返回一行

来自分类Dev

SQLite数据库查询仅返回一行

来自分类Dev

使用group_concat的查询仅返回一行

来自分类Dev

SQL查询在一行中选择父级和子级名称

来自分类Dev

SQL:仅选择具有相同值的表的一行

来自分类Dev

SQL:仅选择具有相同值的表的一行

来自分类Dev

SQL Server/报表生成器子查询返回多于一行错误

来自分类Dev

JDBC PL/SQL 前一行 (LAG) 仅返回当前值

Related 相关文章

  1. 1

    sql查询仅返回一行

  2. 2

    mysql子查询仅返回一行

  3. 3

    选择最小值并仅返回第一行

  4. 4

    SQL Server数据透视查询仅返回一行

  5. 5

    如何使用LINQ从选择中仅返回一行?

  6. 6

    如何使用LINQ从选择中仅返回一行?

  7. 7

    在SQL中,如何通过比较时间属性为每个用户选择一行中的值,而仅选择最新行?

  8. 8

    如何有选择地从前一行继承 SQL 服务器查询中的值

  9. 9

    Teradata SQL - 选择不同的返回重复行,其中一行具有空值

  10. 10

    子查询返回的一行以上

  11. 11

    sql查询从多行中只选择一行

  12. 12

    SQL仅选择第一行

  13. 13

    查询仅返回Java中的空值

  14. 14

    PHP-基本选择查询仅返回mysql数据库的第一行

  15. 15

    从一张表中选择:单行子查询返回多于一行

  16. 16

    SQL-选择一行中的最大值

  17. 17

    如何修复单行子查询在以下查询中返回多于一行?

  18. 18

    在SQL查询中使用avg()函数仅返回一行?

  19. 19

    选择DataGridView中的最后一行时,将返回上一行的值,而不是所选行的值

  20. 20

    选择DataGridView中的最后一行时,将返回上一行的值,而不是所选行的值

  21. 21

    一列的每个值仅返回一行,不同列中的其他值仅返回一行

  22. 22

    使用group_concat的查询仅返回一行

  23. 23

    SQLite数据库查询仅返回一行

  24. 24

    使用group_concat的查询仅返回一行

  25. 25

    SQL查询在一行中选择父级和子级名称

  26. 26

    SQL:仅选择具有相同值的表的一行

  27. 27

    SQL:仅选择具有相同值的表的一行

  28. 28

    SQL Server/报表生成器子查询返回多于一行错误

  29. 29

    JDBC PL/SQL 前一行 (LAG) 仅返回当前值

热门标签

归档