このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1274791771/711
#  Oracleのソートだと数字→英字になっていまいますが 
#  これをSQLで逆にソートする方法はありますか。 
# 
# 

'英字-数字順整列'(L1,L2) :-
        L1 = [A|R],
        '英字-数字順整列'(A,R,L2).

'英字-数字順整列'(_,[],[]) :- !.
'英字-数字順整列'(A,R,L2) :-
        '英字-数字順整列の分割'(A,R_Aに等しいかより小さいならび,_Aより大きいならび),
        '英字-数字順整列'(_Aより小さいならび,_整列したAより小さいならび),
        '英字-数字順整列'(_Aより大きいならび,_整列したAより大きいならび),
        append(_整列したAより小さいならび,[A|_整列したAより大きいならび],L2).

'英字-数字順整列の分割'(_文字1,[],[],[]) :- !.
'英字-数字順整列の分割'(_文字1,[_文字2|R1],[_文字2|R2],R3) :-
        'ソートの大小比較規則の変更'(@>=,_文字1,_文字2),
        '英字-数字順整列の分割'(_文字1,R1,R2,R3).
'英字-数字順整列の分割'(_文字1,[_文字2|R1],R2,[_文字2|R3]) :-
        'ソートの大小比較規則の変更'(@<,_文字1,_文字2),
        '英字-数字順整列の分割'(_文字1,R1,R2,R3).

'ソートの大小比較規則の変更'(@>,_文字1,_文字2) :-
        数字(_文字1),
        英字(_文字2),!.
'ソートの大小比較規則の変更'(@>,_文字1,_文字2) :-
        _文字1 @> _文字2,!.
'ソートの大小比較規則の変更'(@>=,_文字1,_文字2) :-
        数字(_文字1),
        英字(_文字2),!.
'ソートの大小比較規則の変更'(@>=,_文字,_文字) :- !.
'ソートの大小比較規則の変更'(@<,_文字1,_文字2) :-
        数字(_文字2),
        英字(_文字1),!.
'ソートの大小比較規則の変更'(@<,_文字1,_文字2) :-
        _文字1 @< _文字2,!.
'ソートの大小比較規則の変更'(@=<,_文字1,_文字2) :-
        数字(_文字2),
        英字(_文字1),!.
'ソートの大小比較規則の変更'(@=<,_文字,_文字) :- !.
'ソートの大小比較規則の変更'(=,_文字,_文字) :- !.