|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Andrei Sokolik 2:5022/2.20 22 Feb 2001 15:57:10 To : Nik Sestrin Subject : SELECT TOP <n> ... -------------------------------------------------------------------------------- 21 Feb 01 20:34, Nik Sestrin wrote to All: NS> From: "Nik Sestrin" <sestrin@astfnet.kuzbass.net> NS> "Sergey Mokhov" <sm@crk.vsi.ru> сообщил/сообщила в новостях следующее: NS> news:970lml$8fb$1@info.vsu.ru... >> > Сорри за глупый вопрос, но в каких диалектах SQL допустим сабж? >> >> В DB2 поддерживается функция rownumber() over(order by список >> полей). NS> Hе могу не отметить T_SQL (MS SQL Server) и MS Acceess SQL. Трудно NS> поверить, что этого нет в Oracle. В Oracle проще всего написать SELECT * FROM (SELECT * FROM tab ORDER BY fld,...) WHERE rownum < n; Замечу, что row_number() тоже есть. Она нумерует записи в определенном порядке, но как аналитическая функция, в where участвовать не может: === Cut === Example For each department in the emp table, the following example assigns numbers to each row in order of employee's hire date: SELECT deptno, ename, hiredate, ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY hiredate) AS emp_id FROM emp; DEPTNO ENAME HIREDATE EMP_ID -+-------- ---------- --------- ---------- 10 CLARK 09-JUN-81 1 10 KING 17-NOV-81 2 10 MILLER 23-JAN-82 3 20 SMITH 17-DEC-80 1 20 JONES 02-APR-81 2 20 FORD 03-DEC-81 3 20 SCOTT 19-APR-87 4 20 ADAMS 23-MAY-87 5 30 ALLEN 20-FEB-81 1 30 WARD 22-FEB-81 2 30 BLAKE 01-MAY-81 3 30 TURNER 08-SEP-81 4 30 MARTIN 28-SEP-81 5 30 JAMES 03-DEC-81 6 === Cut === Andrei --- GoldED/W32 3.0.1 * Origin: С пивом по жизни. (FidoNet 2:5022/2.20) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/26883a952b4c.html, оценка из 5, голосов 10
|