SQLiteには、OracleのROWNUMに直接相当するものはありません。
私が正しくあなたの条件を理解していれば、あなたは古いテーブルの順序にこの方法をベース番列を追加することができるはずです。
create table old (col1, col2);
insert into old values
('d', 3),
('s', 3),
('d', 1),
('w', 45),
('b', 5465),
('w', 3),
('b', 23);
create table new (colPK INTEGER PRIMARY KEY AUTOINCREMENT, col1, col2);
insert into new select NULL, col1, col2 from old order by col1, col2;
新しいテーブルが含まれています
.headers on
.mode column
select * from new;
colPK col1 col2
---------- ---------- ----------
1 b 23
2 b 5465
3 d 1
4 d 3
5 s 3
6 w 3
7 w 45
AUTOINCREMENT
は、その名前が示唆していることを行います。追加の各行は、前に1ずつ増えた値を持ちます。
SELECT ROWID FROMは、すべてのレコードの一意の行番号を返します。これはROWNUMに相当します。 –
正確ではありません。 OROcles ROWNUMはクエリの* result *に適用されます。 'rownum FROM tbl where rownum> 3'は何も見つけません(最初の行が真になるのでrownum 1を取得します)。しかし、これはOPの要件ではありません。彼はただの価値が必要です。 –
これはROWNUMと「正確に」同じではないかもしれませんが、自動的に追加される各行の一意のIDです。これは@ Raceimaztionの要件です。 –