全部產品
Search
文件中心

MaxCompute:HASH

更新時間:Feb 28, 2024

value1value2進行散列運算得到一個Hash值。

命令格式

  • 當MaxCompute專案為Hive相容模式時,命令格式如下。

    int hash(<value1>, <value2>[, ...]);
  • 當MaxCompute專案非Hive相容模式時,命令格式如下。

    bigint hash(<value1>, <value2>[, ...]);

參數說明

value1value2:必填。待計算Hash值的參數,各參數的類型可以不相同。Hive及非Hive相容模式下支援的資料類型不相同,具體如下:

  • Hive相容模式:TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE、DECIMAL、BOOLEAN、STRING、CHAR、VARCHAR、DATETIME、DATE。

  • 非Hive相容模式:BIGINT、DOUBLE、BOOLEAN、STRING、DATETIME。

說明

對於兩個相同的輸入,返回的Hash值一定是相同的。但是反過來,如果兩個Hash值相同,並不保證輸入值一定相等(可能出現雜湊碰撞)。

使用樣本

  • 樣本1:計算相同資料類型的輸入參數的Hash值。命令樣本如下。

    --返回66。
    select hash(0, 2, 4);
  • 樣本2:計算不同資料類型的輸入參數的Hash值。命令樣本如下。

    --返回97。
    select hash(0, 'a');
  • 樣本3:任一輸入參數為空白或NULL。命令樣本如下。

    --返回0。
    select hash(0, null);
    --返回0。
    select hash(0, '');

相關函數

HASH函數屬於其他函數,更多其他業務情境的函數請參見其他函數