Postgresql 中的 hash(#) 运算符有何作用

Ros*_*ssy 2 sql postgresql operators dbvisualizer

我正在尝试用另一种语言复制前雇员在 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
Run Code Online (Sandbox Code Playgroud)

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

The*_*ler 5

正式名称为“按位异或”。见9.6。位串函数和运算符

它计算两个对应项的每一位之间的异或运算。

例如:

select 10 # 12
Run Code Online (Sandbox Code Playgroud)

将被计算为相应二进制数字之间的 XOR:

1 0 1 0 (decimal 10)
1 1 0 0 (decimal 12)
-------
0 1 1 0 (decimal 6)
Run Code Online (Sandbox Code Playgroud)

结果:

6
Run Code Online (Sandbox Code Playgroud)