= What is the dual table in the Oracle database

Sometimes in Select queries you can see a mythic "dual" table.

What the hell is it? Let's see what is inside:

```sql
slect *
from dual
```

Result:

```
dummy
--------
X
```

This table contains one column (`dummy`) and one row (with `X` value),
but it's not important at all, because the `dual` table is used when
some "static" results are required.

The thing here is that Oracle **requires a table name** in `select
from` queries, even if selected data doesn't depend on tables used in
a query.

Because the `dual` table has only one row, all constants are returned
only once.

Here are a few examples:

Get constant values:

```sql
select 23
from dual
```

```sql
select 12 + 42
from dual
```

In the example below the value for the parameter `pvalue` comes from
outside, and the result of the query depends on it only, not on any
rows in a database:

```sql
select decode(:pvalue, 1, 'True', 'False')
from dual
```

Get a list of numbers (here we utilized the `level` pseudocolum):

```sql
select level lvl
from dual
connect by level < 11;
```

Output:

```
 LVL
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
```