本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
傳回兩個數字的餘數,也稱為模數運算。為了計算結果,第一個參數除以第二個參數。
語法
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 |
+-------+-----------+