A scalar subquery expression is a subquery that returns exactly one column value from one row. The value of the scalar subquery expression is the value of the select list item of the subquery. If the subquery returns 0 rows, then the value of the scalar subquery expression is NULL. If the subquery returns more than one row, then Oracle returns an error.
You can use a scalar subquery expression in most syntax that calls for an expression (expr). However, scalar subqueries are not valid expressions in the following places:
As default values for columns
As hash expressions for clusters
In the RETURNING clause of DML statements
As the basis of a function-based index
In CHECK constraints
In WHEN conditions of CASE expressions
In GROUP BY and HAVING clauses
In START WITH and CONNECT BY clauses
In statements that are unrelated to queries, such as CREATE PROFILE