Код: Выделить всё
CREATE TABLE DEPT(
DEPTNO INTEGER
, DNAME TEXT
, LOC TEXT
, CONSTRAINT dept$p
PRIMARY KEY(deptno)
) STRICT;
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');
Код: Выделить всё
sqlite> SELECT * FROM dept;
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+------------+----------+
Код: Выделить всё
sqlite> SELECT * FROM dept ORDER BY loc;
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 40 | OPERATIONS | BOSTON | <--- some_rownum = 1
| 30 | SALES | CHICAGO | <--- some_rownum = 2
| 20 | RESEARCH | DALLAS | <--- some_rownum = 3
| 10 | ACCOUNTING | NEW YORK | <--- some_rownum = 4
+--------+------------+----------+
Можно ли каким-то образом получить номера строк в такой выборке (some_rownum), чтобы их затем использовать?
Например так:
Код: Выделить всё
SELECT *
FROM (SELECT some_rownum, D.* FROM dept D ORDER BY loc)
WHERE some_rownum <= 2;