RESULT_SCAN テーブル関数: 列名の重複に関する変更¶
現在、 RESULT_SCAN 関数で処理された結果に重複する列名がある場合、関数は重複する各列名にサフィックスを付加して列名を一意にします。たとえば、2つの列名が id
の場合、この関数は列名 id
と id_1
を持つテーブルを返します。
RESULT_SCAN 関数が重複する列名を処理する方法は以下のとおりです。
- 以前:
結果に重複した列名が含まれている場合、 RESULT_SCAN 関数は重複した各列名に _<n> を付加して、列名を一意にします。
この関数は、同じサフィックスを持つ列が他にある場合でも、このサフィックスを付加します。その結果、列名が重複してしまうことがあります。
例:
SELECT 1 AS a, 2 AS a_1, 3 AS a; +---+-----+---+ | A | A_1 | A | |---+-----+---| | 1 | 2 | 3 | +---+-----+---+ SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())); +---+-----+-----+ | A | A_1 | A_1 | |---+-----+-----| | 1 | 2 | 3 | +---+-----+-----+
- 現在:
RESULT_SCAN 関数は、次に利用可能な番号でサフィックスを付加して、列名を一意にします。
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())); +---+-----+-----+ | A | A_1 | A_2 | |---+-----+-----| | 1 | 2 | 3 | +---+-----+-----+
参照: 1039