Oracle. Таблица dual и connect by

Oracle не перестает удивлять.

Oracle 9.

Select Level from dual connect by Level < 200

Вернет строго 100 записей.

Select Max(Level) from dual connect by Level < 200

Вернет 199.

Приятно.

Но это еще не всё. :)

Select Max(LevelNo)
from
(
Select Level as LevelNo from dual connect by Level < 200
)

Тоже вернет 199

На Oracle 10 всё в порядке.

Tags: , ,

Смотрите также:



  • http://rusiv.nm.ru RusIv

    Не нужно в заркало пинять:
    Select count(Level) from dual connect by Level < 200

    а кол-во отображаемых записей настраивается в sqlplus :-)

  • http://www.mphome.dp.ua mp

    sqlplus? количество записей?

    D:\lab>sqlplus ipwork/ip@horse

    SQL*Plus: Release 9.2.0.1.0 — Production on Fri Jul 11 16:15:23 2008

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.1.0 — Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 — Production

    SQL> Select Level from dual connect by Level < 200;

    LEVEL
    ----------
    1

    SQL>

    Вообще одна строка.

    На Oracle 10 — 199 записей

    SQL*Plus: Release 10.2.0.1.0 — Production on Fri Jul 11 16:20:27 2008

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 — 64bit Production
    With the Partitioning, OLAP and Data Mining options

    SQL> Select Level from dual connect by Level < 200;

    .....
    185
    186
    187

    LEVEL
    ----------
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198

    LEVEL
    ----------
    199

    199 rows selected.

    SQL>