MOD 函數 - Amazon Redshift

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

MOD 函數

傳回兩個數字的餘數,也稱為模數運算。為了計算結果,第一個參數除以第二個參數。

語法

MOD(number1, number2)

引數

number1

第一個輸入參數是 INTEGERSMALLINTBIGINTDECIMAL 數字。如果任一參數為 DECIMAL 類型,則另一個參數也必須為 DECIMAL 類型。如果任一參數為 INTEGER,則另一個參數可以是 INTEGERSMALLINTBIGINT。兩個參數也都可以是 SMALLINTBIGINT,但如果一個參數是 BIGINT,則另一個參數不能是 SMALLINT

number2

第二個參數是 INTEGERSMALLINTBIGINTDECIMAL 數字。相同的資料類型規則適用於 number2number1

傳回類型

如果兩個輸入參數都是相同的類型,則MOD函數的傳回類型與輸入參數的數值類型相同。不過,如果任一輸入參數為 INTEGER,則傳回類型也會是 INTEGER。有效的傳回類型為 DECIMALINTSMALLINTBIGINT

使用須知

您可以使用 % 作為模數運算子。

範例

若要傳回一個數字除以另一個數字時的餘數,請使用下列範例。

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