豚吐露@wiki
OracleのROWNUMみたいなことがしたい
最終更新:
ohden
-
view
MSDE2000はSQL Server2000互換なので...ROWNUMに代わる関数は用意されていない。
※SQL Server2005からROW_NUMBERって関数を用意してくれてるらしい...
※SQL Server2005からROW_NUMBERって関数を用意してくれてるらしい...
以下のようなtableとデータがあったとして...
CREATE TABLE T_TEST( id int PRIMARY KEY NOT NULL, detail nvarchar(50), createdate datetime ); INSERT INTO T_TEST VALUES(10001, 'TEST1', getdate()); INSERT INTO T_TEST VALUES(10002, 'TEST1', getdate()); INSERT INTO T_TEST VALUES(10003, 'TEST1', getdate()); INSERT INTO T_TEST VALUES(10004, 'TEST1', getdate()); INSERT INTO T_TEST VALUES(10005, 'TEST1', getdate()); INSERT INTO T_TEST VALUES(10006, 'TEST1', getdate()); INSERT INTO T_TEST VALUES(10007, 'TEST1', getdate()); INSERT INTO T_TEST VALUES(20001, 'TEST2', getdate()); INSERT INTO T_TEST VALUES(20002, 'TEST2', getdate()); INSERT INTO T_TEST VALUES(20003, 'TEST2', getdate()); INSERT INTO T_TEST VALUES(20004, 'TEST2', getdate()); INSERT INTO T_TEST VALUES(20005, 'TEST2', getdate()); INSERT INTO T_TEST VALUES(20006, 'TEST2', getdate());
って、やると、順番に番号がふられる。
ただし、WHEREで条件絞ったり、副問い合わせしたりしようとすると...とたんに難易度が上がる。(´Д`)
挫折した...
ただし、WHEREで条件絞ったり、副問い合わせしたりしようとすると...とたんに難易度が上がる。(´Д`)
挫折した...
SELECT ( SELECT COUNT(*)+1 FROM T_TEST AS b WHERE b.ID > T_TEST.ID ) AS No, * FROM T_TEST ORDER BY T_TEST.ID DESC ;
更新日: 2010年04月14日 (水) 09時53分13秒