MOD 関数
2 つの数値の余りを返します。モジュロ演算とも呼ばれます。結果を計算するには、最初のパラメータを 2 番目のパラメータで除算します。
構文
MOD(number1, number2)
引数
- number1
-
最初の入力パラメータは、
INTEGER
、SMALLINT
、BIGINT
、またはDECIMAL
数です。一方のパラメータがDECIMAL
型である場合は、もう一方のパラメータもDECIMAL
型である必要があります。一方のパラメータがINTEGER
である場合、もう一方のパラメータはINTEGER
、SMALLINT
、またはBIGINT
のいずれかにします。両方のパラメータをSMALLINT
またはBIGINT
にすることもできますが、一方のパラメータがBIGINT
である場合に、もう一方のパラメータをSMALLINT
にすることはできません。 - number2
-
2 番目のパラメータは、
INTEGER
、SMALLINT
、BIGINT
、またはDECIMAL
数です。number1 と同じデータ型ルールが number2 に適用されます。
戻り型
両方の入力パラメータが同じ型である場合、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 |
+-------+-----------+