• ベストアンサー

ビット指定で検索できますか?

みなさん、こんにちは。 32ビット値のフィールドvalに対して、「val & 0x00000005 != 0」となるレコードを抽出できるようなSQLコマンドはないでしょうか? どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 Oracle であれば、BITAND ファンクションが提供されています。 SQL> select * from Table where BITAND(val, 5) != 0; のように指定できます。

ooo333ttt
質問者

お礼

ありがとうございます。 実は Access でした。 でも、Oracle もたまに使いますので・・・

その他の回答 (1)

  • YanYas
  • ベストアンサー率34% (26/75)
回答No.1

使用されているDBMSが不明なのではっきり言えませんが・・・ Where句にそのまま記述すればよいと思いますよ。 お使いのDBMSの論理演算の記述方法を確認してみてください。 (例) select * from Table where val & 0x0000005 != 0

ooo333ttt
質問者

補足

回答いただき、ありがとうございます。 Access で試したところ、 残念ながら、うまく動作しませんでした。 HDDの容量をケチろうという目論見でした。 SQL でフィールドのサイズをビット単位で 指定できればありがたいのですが・・・

関連するQ&A