マップコンストラクタ/演算子は、新しいマップデータ型を構築するために使用されます。OceanBaseデータベースで現在サポートされているマップコンストラクタには map() があり、演算子には {} があります。
map
map() 関数は、マップデータを構築するために使用されます。構文は以下のとおりです:
map(key1, value1, key2, value2, ..., keyN, valueN)
入力パラメータの説明は以下のとおりです:
- 入力パラメータの数は偶数である必要があります。奇数番目のパラメータはKey配列を形成し、偶数番目のパラメータはValue配列を形成します。
- key1~keyN と value1~valueN のデータ要素タイプについては、マップデータ型の概要を参照してください。
- 入力されたキー・バリュー・ペアのKeyは重複してはなりません。重複するKeyがある場合、後から入力されたValueが優先され、前のValueは上書きされます。
戻り値はマップデータ型(MAP)です。
例:
-- 構築されたマップデータには1つのキー・バリュー・ペアがあり、keyは1、valueは2です
SELECT map(1,2);
+----------+
| map(1,2) |
+----------+
| {1:2} |
+----------+
1 row in set
-- 構築されたマップデータには3つのキー・バリュー・ペアがあります
SELECT map(1,"a",2,"b",3,"c");
+------------------------+
| map(1,"a",2,"b",3,"c") |
+------------------------+
| {1:"a",2:"b",3:"c"} |
+------------------------+
1 row in set
-- Key配列のデータ型は奇数番号のパラメータによって、Value配列のデータ型は偶数番号のパラメータによって決定されます。
SELECT map(1,"a","b",1.8,"ccc",3);
+-------------------------------+
| map(1,"a","b",1.8,"ccc",3) |
+-------------------------------+
| {"1":"a","b":"1.8","ccc":"3"} |
+-------------------------------+