すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:CONV

最終更新日:Mar 27, 2026

CONV は、ある基数から別の基数に数値を変換し、結果を STRING として返します。

構文

STRING CONV(<input>, BIGINT <from_base>, BIGINT <to_base>)

パラメータ

パラメータ必須説明
inputYes変換する数値。STRING 型である必要があります。Hive 互換モード (set odps.sql.hive.compatible=true;) では、BIGINT および DOUBLE からの暗黙的な型変換がサポートされています。非 Hive 互換モード (set odps.sql.hive.compatible=false;) では、BIGINT および DOUBLE の入力はサポートされておらず、null が返されます。
from_baseYesinput 値の基数。有効な値は 2810、および 16 です。その他の値は受け入れられません。暗黙的な型変換はサポートされていません。
to_baseYes出力値の基数。有効な値は 2810、および 16 です。その他の値は受け入れられません。暗黙的な型変換はサポートされていません。

戻り値

STRING 型の値を返します。次の表に、各条件での戻り値を示します。

条件非 Hive 互換モードHive 互換モード
inputfrom_base、または to_base が null の場合nullnull
64 ビットオーバーフロー (input が 64 ビットの範囲を超える場合)nullnull
input が BIGINT または DOUBLE 型の場合null (暗黙的な型変換はサポートされていません)STRING に暗黙的に変換され、その後変換が実行されます
input が負の値の場合null0
input が小数値の場合null小数部を切り捨て、整数部を変換します
変換は 64 ビット精度で実行されます。オーバーフローが発生した場合、null が返されます。

サンプルデータ

次の例では、mf_math_fun_t テーブルを使用します。次のステートメントを使用してテーブルを作成し、サンプルデータを挿入します。

CREATE TABLE IF NOT EXISTS mf_math_fun_t(
     int_data     INT,
     bigint_data  BIGINT,
     double_data  DOUBLE,
     decimal_data DECIMAL,
     float_data   FLOAT,
     string_data  STRING
    );

INSERT INTO mf_math_fun_t VALUES
(null, -10, 0.525, 0.525BD, CAST(0.525 AS FLOAT), '10'),
(-20, null, -0.1, -0.1BD, CAST(-0.1 AS FLOAT), '-10'),
(0, -1, null, 20.45BD, CAST(-1 AS FLOAT), '30'),
(-40, 4, 0.89, null, CAST(0.89 AS FLOAT), '-30'),
(5, -50, -1, -1BD, null, '50'),
(-60, 6, 1.5, 1.5BD, CAST(1.5 AS FLOAT), '-50'),
(-1, -70, -7.5, -7.5BD, CAST(-7.5 AS FLOAT),null ),
(-80, 1, -10.2, -10.2BD, CAST(-10.2 AS FLOAT), '-1' ),
(9, -90, 2.58, 2.58BD, CAST(2.58 AS FLOAT), '0'),
(-100, 10, -5.8, -5.8BD, CAST(-5.8 AS FLOAT), '-90');

テーブルを表示するには、次を実行します。

SELECT * FROM mf_math_fun_t;
-- 結果:
+------------+-------------+-------------+--------------+------------+-------------+
| int_data   | bigint_data | double_data | decimal_data | float_data | string_data |
+------------+-------------+-------------+--------------+------------+-------------+
| NULL       | -10         | 0.525       | 0.525        | 0.525      | 10          |
| -20        | NULL        | -0.1        | -0.1         | -0.1       | -10         |
| 0          | -1          | NULL        | 20.45        | -1.0       | 30          |
| -40        | 4           | 0.89        | NULL         | 0.89       | -30         |
| 5          | -50         | -1.0        | -1           | NULL       | 50          |
| -60        | 6           | 1.5         | 1.5          | 1.5        | -50         |
| -1         | -70         | -7.5        | -7.5         | -7.5       | NULL        |
| -80        | 1           | -10.2       | -10.2        | -10.2      | -1          |
| 9          | -90         | 2.58        | 2.58         | 2.58       | 0           |
| -100       | 10          | -5.8        | -5.8         | -5.8       | -90         |
+------------+-------------+-------------+--------------+------------+-------------+

静的値

-- 12 を返します
SELECT CONV('1100', 2, 10);

-- C を返します
SELECT CONV('1100', 2, 16);

-- 171 を返します
SELECT CONV('ab', 16, 10);

-- AB を返します
SELECT CONV('ab', 16, 16);

-- NULL を返します (from_base が null の場合)
SELECT CONV('1100', null, 10);

テーブルデータ

bigint_datadouble_datadecimal_data、および string_data 列をバイナリに変換します。

SELECT CONV(bigint_data,10,2) AS bigint_new, CONV(double_data,10,2) AS double_new, CONV(decimal_data,10,2) AS decimal_new, CONV(string_data,10,2) AS string_new FROM mf_math_fun_t;

結果:

+------------+------------+-------------+------------+
| bigint_new | double_new | decimal_new | string_new |
+------------+------------+-------------+------------+
| NULL       | 0          | 0           | 1010       |
| NULL       | NULL       | NULL        | NULL       |
| NULL       | NULL       | 10100       | 11110      |
| 100        | 0          | NULL        | NULL       |
| NULL       | NULL       | NULL        | 110010     |
| 110        | 1          | 1           | NULL       |
| NULL       | NULL       | NULL        | NULL       |
| 1          | NULL       | NULL        | NULL       |
| NULL       | 10         | 10          | 0          |
| 1010       | NULL       | NULL        | NULL       |
+------------+------------+-------------+------------+

関連関数

CONV は数学関数です。データ計算と変換に関連する関数については、「数学関数」をご参照ください。