子查询必须遵守的规则
- 子查询必须位于圆括号内。
- 除非子查询里有多个字段让子查询进行比较,否则子查询的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)