dポイントプレゼントキャンペーン実施中!

みなさん、こんにちは。

32ビット値のフィールドvalに対して、「val & 0x00000005 != 0」となるレコードを抽出できるようなSQLコマンドはないでしょうか?

どうぞよろしくお願いします。

A 回答 (2件)

こんにちわ。



Oracle であれば、BITAND ファンクションが提供されています。

SQL> select * from Table where BITAND(val, 5) != 0;
のように指定できます。
    • good
    • 0
この回答へのお礼

ありがとうございます。

実は Access でした。
でも、Oracle もたまに使いますので・・・

お礼日時:2004/04/30 13:42

使用されているDBMSが不明なのではっきり言えませんが・・・


Where句にそのまま記述すればよいと思いますよ。
お使いのDBMSの論理演算の記述方法を確認してみてください。

(例)
select * from Table where val & 0x0000005 != 0

この回答への補足

回答いただき、ありがとうございます。

Access で試したところ、
残念ながら、うまく動作しませんでした。

HDDの容量をケチろうという目論見でした。
SQL でフィールドのサイズをビット単位で
指定できればありがたいのですが・・・

補足日時:2004/04/30 14:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す