再帰でピボットテーブル
『アート・オブ・SQL』(ISBN:9784873113364)が手元にないのでうろ覚えでやったら、資料見たりで5分以上かかったので、次使うこと考えてメモしておきます。
実在するテーブル使わないとWITH RECURSIVEでエラーになるDBMS用。
っていうか、最初からテーブル(この場合pivot)が空だったら、count(*) - count(*)なんて馬鹿げた事しなくて、count(*) + 1(1始まりの場合)で。
WITH RECURSIVE pivot(val) AS ( SELECT COUNT(*) * 0 + 1 AS val FROM 任意のテーブル UNION ALL SELECT val + 1 AS val FROM pivot WHERE val < 100 ) SELECT val FROM pivot
2010-02-14追記:SQLの内容を修正