RESULT_SCAN 表函数:对重复列名称的更改

注意

此行为变更在 2023_03 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

当前,如果 RESULT_SCAN 函数处理的结果中有重复的列名称,则该函数会在每个重复的列名称后面追加一个后缀,以使列名称独一无二。例如,如果两列均命名为 id,则该函数将返回一个表,其中的列名称分别为 idid_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 |
+---+-----+-----+
Copy
现在:

RESULT_SCAN 函数在后缀中追加下一个可用数字,以使列名称独一无二:

SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));
+---+-----+-----+
| A | A_1 | A_2 |
|---+-----+-----|
| 1 |   2 |   3 |
+---+-----+-----+
Copy

参考:1039

语言: 中文