RESULT_SCAN 表函数:对重复列名称的更改¶
当前,如果 RESULT_SCAN 函数处理的结果中有重复的列名称,则该函数会在每个重复的列名称后面追加一个后缀,以使列名称独一无二。例如,如果两列均命名为 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