So If I define a table in FROM with a subquery, the subquery can be just about anything:

```
FROM (SELECT x FROM table)

```

But If i want to use a subquery in the SELECT Clause, it seems to have more restrictions for example

```
SELECT (SELECT x FROM table) AS x

```

Can raise the error

> 
> Sub query returns more than 1 row
> 
> 
> 

if there are multiple rows.

Why can't a sub query in the SELECT clause have a single column and multiple rows? And if it can't accept multiple rows, why can't I use something like MAX() to aggregate the rows into one value?

For example, query (1) works and (2) does not.

Query 1:

```
SELECT
    (SELECT salary FROM Employee 
LIMIT 1 OFFSET 1) AS salary;

```

Query 2:

```
SELECT
    MAX(SELECT salary FROM Employee) AS salary; 

```