Snowflake 中的按位运算符?

Bitwise & operator in Snowflake?

我对按位运算符的 Snowflake 很着迷。在 MySql 中,允许使用此语法:

Flag & 1024 > 0

我想在 where 子句中使用 Snowflake 进行相同的过滤,但我在网上发现只有这些功能: https://docs.snowflake.com/en/sql-reference/expressions-byte-bit.html

你有什么理想的做同样事情的方法吗?

Flag & 1024 > 0 等同于 BITWISE AND:

WHERE BITAND(Flag, 1024) > 0;

db<> fiddle demo MySQL

雪花:

CREATE TABLE tab(flag INT)
AS
SELECT 1024 AS flag
UNION SELECT 2048
UNION SELECT 1025;

SELECT *
FROM tab
WHERE BITAND(Flag, 1024) > 0;
-- 1024
-- 1025