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)
原文地址:https://www.cnblogs.com/zhangzexdu/p/5162731.html