このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1274791771/815
#  こんなレコードが格納されているとします。 
#  ID,NO 
#  100,1 
#  102,2 
#  101,3 
#  200,1 
#  201,2 
#  202,3 
#  この場合、IDを100番台、200番台でグルーピングして、各グループ毎にNO順にSELECTで出力しようとした場合、どのような条件にすればよいでしょうか? 
#  IDはこの例では3桁ですが、実際には6桁程あり、出来ればWHERE句で数字を入れて指定するような事はせずに並び替えが出来ると嬉しいです。 
#  要は、レコードが増えてグループが増えたりしても、条件を変えずに並び替えが出来るようなものが良いのですが、可能でしょうか? 
#  宜しくご教示願います。 
# 
# 

'IDを100番台、200番台でグルーピングして、各グループ毎にNO順に出力する' :-
        findsetof(_ID,(
                    テーブル(_ID,_NO),
                    _ID_1 is (_ID // 100) + 1),
                _IDグループならび),
        findall(LL1,(
                    append(_,[_ID_1|_],_IDグループならび),
                    findall([_NO,_ID],(
                                テーブル(_ID,_NO),
                                _ID_1 is (_ID // 100) + 1),
                            LL1)),
                LL2),
        各グループ毎にNO順に出力する(LL2).


各グループ毎にNO順に出力する(LL) :-
        append(_,[L1|R1],LL),
        整列(L1,L2),
        append(_,[[_NO,_ID]|R2],L2),
        write_formatted('%t,%t\n',[_ID,_NO]),
        R2 = [],
        R1 = [],!.