SQL里的子查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL里的子查询相关的知识,希望对你有一定的参考价值。

子查询必须遵守的规则

  • 子查询必须位于圆括号内。
  • 除非子查询里有多个字段让子查询进行比较,否则子查询的SELECT子句里只能有一个字段。
  • 子查询里不能使用ORDER BY子句。在子查询里,我们可以利用GROUP BY子句实现ORDER BY功能。
  • 返回多条记录的子查询只能与多值操作符(比如IN)配合使用。
  • SELECT列表里不能引用任何BLOB、ARRAY、CLOB或NCLOB类型的值。
  • 子查询不能直接被包围在函数里
  • 操作符BETWEEN不能用于子查询,但子查询内部可以使用它。
    SELECT COLUMN_NAME 
    FROM TABLE_A
    WHERE COLUMN_NAME  OPERATOR  (SELECT COLUMN_NAME FROM 
                                            FROM TABLE_B
                                            WHERE BETWEEN VALUE AND VALUE)

    下面这样做是不可以的:
    SELECT COLUMN_NAME FROM TABLE_A WHERE COLUMN_NAME  BETWEEN VALUE AND  (SELECT COLUMN_NAME FROM
                                            FROM TABLE_B WHERE CONDITION)

     

以上是关于SQL里的子查询的主要内容,如果未能解决你的问题,请参考以下文章

sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li

sql中带有无效标识符错误的子查询

oracle exist 语句

如何在 SQL Server 中的 UPDATE 查询的子查询中引用表变量

Hibernate HQL中的子查询

[转]HQL中的子查询