View a markdown version of this page

MOD 函數 - Amazon Redshift

Amazon Redshift 將不再支援在 2026 年 6 月 30 日之後使用 Python UDFs。我們將開始分階段強制執行。如需 Python 生命週期結束和遷移選項的詳細資訊,請參閱 2025 年 6 月 30 日發佈的部落格文章。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 | +-------+-----------+