hash(#) 运算符在 Postgresql 中做什么



我正在尝试复制一位前员工在 Postgres 中用另一种语言构建的函数,并且在弄清楚 # 运算符的作用时遇到了麻烦。 我已经通过它运行了一些数字,结果似乎没有任何一致性:

select  1 # 1  --0
,1 # 2 --3
,1 # 3 --2
,1 # 4 --5
,1 # 5 --4
,2 # 2 --0
,2 # 3 --1
,2 # 4 --6

如果有人能够解释,我将不胜感激!

正式名称为"按位异或"。请参阅 9.6.位字符串函数和运算符。

它计算两个对应项的每个位之间的 XOR 运算。

例如:

select 10 # 12

将计算为它们相应的二进制数字之间的异或:

1 0 1 0 (decimal 10)
1 1 0 0 (decimal 12)
-------
0 1 1 0 (decimal 6)

结果:

6

相关内容

  • 没有找到相关文章

最新更新