3

我在SQL-Server中有一个SQL命令,我需要将它迁移到Oracle,但是有一部分sql我不明白如何翻译它。这是sql:

select * from myTable where id = @id and (Mask & @Mask) = @Mask

我认为这是一个二进制掩码,但我不太确定,我不知道我是否可以在 Oracle 中做到这一点,你能帮我吗?

非常感谢

4

1 回答 1

5

你是对的 - 这是二进制掩码。

Oracle 只提供 BITAND 功能,其他(BITOR、BITXOR)必须自制。

使用 BITAND 函数,此选择将​​返回值 2:

SELECT BITAND(6,2) FROM DUAL;

因此,您在 Oracle 中的查询可以通过以下方式重写:

select * from myTable where id = :id and BITAND(Mask, :Mask) = :Mask
于 2013-08-08T08:02:48.847 回答