本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 | +-------+-----------+