このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1299305530/768
#  isnumericについて教えてください  
#  ある項目(文字列型)の値が  
#  数値のものだけ抽出したいと考えています  
#  isnumericで行おうとしているのですが、  
#  Access上のリンクテーブルに対してクエリを実行するとOKなのですが  
#  SQLServer上でクエリを実行すと全角スペースのものも数値として抽出してしまいます  
#   
#  ■環境  
#  SQLServer2008 R2  
#   
#  ■テーブル  
#  W_チェックテーブル  
#   
#  ■データ  
#  No Aコード  
#  1 100  
#  2 200  
#  3 ABC  
#  4    (全角スペース)  
#  5 500  
#   
#  ■ほしい結果  
#  1 100  
#  2 200  
#  5 500  
#   
#  ■SQL  
#  SELECT No,Aコード  
#  FROM W_チェックテーブル  
#  WHERE isnumeric(Aコード) <> 0  
#  ORDER BY No  
#   
#  上のSQLを実行すると  
#  1 100  
#  2 200  
#  4    (全角スペース)  
#  5 500  
#   
#  となり全角スペースのレコードが出力されてしまいます  
#  全角スペースのレコードを除外するにはどうすればよいでしょうか?? 
# 
# 

'ある項目(文字列型)の値が数値のものだけ抽出したい'(_Aコード) :-
        W_チェックテーブル(_,_Aコード),
        文字列はすべて数字からなる(_Aコード).

文字列はすべて数字からなる(_Aコード) :-
        atom_chars(_Aコード,Chars),
        ならびはすべて数字(Chars).

ならびはすべて数字からなる([]).
ならびはすべて数字からなる([A|R]) :-
        A @>= '0',
        A @=< '9',
        ならびはすべて数字からなる(R).