Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章
MOD 函數
傳回兩個數字的餘數,也稱為模數運算。為了計算結果,第一個參數除以第二個參數。
語法
MOD(number1, number2)
引數
- number1
-
第一個輸入參數是
INTEGER、SMALLINT、BIGINT或DECIMAL數字。如果任一參數為DECIMAL類型,則另一個參數也必須為DECIMAL類型。如果任一參數為INTEGER,則另一個參數可以是INTEGER、SMALLINT或BIGINT。兩個參數也都可以是SMALLINT或BIGINT,但如果一個參數是BIGINT,則另一個參數不能是SMALLINT。 - number2
-
第二個參數是
INTEGER、SMALLINT、BIGINT或DECIMAL數字。相同的資料類型規則適用於 number2 與 number1。
傳回類型
如果兩個輸入參數都是相同類型,則 MOD 函數的傳回類型與輸入參數的數值類型相同。不過,如果任一輸入參數為 INTEGER,則傳回類型也會是 INTEGER。有效的傳回類型為 DECIMAL、INT、SMALLINT 和 BIGINT。
使用須知
您可以使用 % 作為模數運算子。
範例
若要傳回一個數字除以另一個數字時的餘數,請使用下列範例。
SELECT MOD(10, 4);+-----+ | mod | +-----+ | 2 | +-----+
若要在使用 MOD 函數時傳回 DECIMAL 結果,請使用下列範例。
SELECT MOD(10.5, 4);+-----+ | mod | +-----+ | 2.5 | +-----+
若要在執行 MOD 函數之前轉換數字,請使用下列範例。如需更多詳細資訊,請參閱 CAST 函數。
SELECT MOD(CAST(16.4 AS INTEGER), 5);+-----+ | mod | +-----+ | 1 | +-----+
若要透過除以 2 來檢查第一個參數是否為偶數,請使用下列範例。
SELECT mod(5,2) = 0 AS is_even;+---------+ | is_even | +---------+ | false | +---------+
若要使用 % 做為模數運算子,請使用下列範例。
SELECT 11 % 4 as remainder;+-----------+ | remainder | +-----------+ | 3 | +-----------+
下列範例使用 TICKIT 範例資料庫。如需更多詳細資訊,請參閱 範本資料庫。
若要傳回 CATEGORY 資料表中奇數編號類別的資訊,請使用下列範例。
SELECT catid, catname FROM category WHERE MOD(catid,2)=1 ORDER BY 1,2;+-------+-----------+ | catid | catname | +-------+-----------+ | 1 | MLB | | 3 | NFL | | 5 | MLS | | 7 | Plays | | 9 | Pop | | 11 | Classical | +-------+-----------+