如何在 WHERE 子句中使用按位 AND?
How to use bitwise AND in WHERE clause?
我们的数据库中有一个 FLAGS 列,用于存储各种标志。这是一个 NUMBER 列。该数字将根据设置的标志而变化。我想 select table 中设置了特定标志的所有行。可以通过在列 'FLAGS' 上使用十六进制值 0x0008000000000000L
执行 BITWISE AND 来获取该标志。我该怎么做?我对 Oracle 有点陌生 SQL.
select * from yourtable
where bitand(flags, to_number('8000000000000', 'xxxxxxxxxxxxx'))>0;
PLSQL 为此提供了一个名为 BITAND
的函数
这样使用
SELECT * FROM tab
WHERE BITAND(FLAGS, TO_NUMBER('8000000000000', 'xxxxxxxxxxxxx')) > 0
如果您想了解更多关于 BITAND 的信息,请查看此页面 https://www.techonthenet.com/oracle/functions/bitand.php
我们的数据库中有一个 FLAGS 列,用于存储各种标志。这是一个 NUMBER 列。该数字将根据设置的标志而变化。我想 select table 中设置了特定标志的所有行。可以通过在列 'FLAGS' 上使用十六进制值 0x0008000000000000L
执行 BITWISE AND 来获取该标志。我该怎么做?我对 Oracle 有点陌生 SQL.
select * from yourtable
where bitand(flags, to_number('8000000000000', 'xxxxxxxxxxxxx'))>0;
PLSQL 为此提供了一个名为 BITAND
的函数
这样使用
SELECT * FROM tab
WHERE BITAND(FLAGS, TO_NUMBER('8000000000000', 'xxxxxxxxxxxxx')) > 0
如果您想了解更多关于 BITAND 的信息,请查看此页面 https://www.techonthenet.com/oracle/functions/bitand.php