问题描述
SELECT 'SELECT id,' ||
STRING_AGG(
'MAX(IF(key = "' || key || '",value,NULL)) as `' || key || '`'
)
|| ' FROM `project.dataset.table` GROUP BY id ORDER BY id'
FROM (
SELECT key
FROM `project.dataset.table`
GROUP BY key
ORDER BY key
但即使我应用 EXECUTE IMMEDIATE
函数,它也会返回上面代码的字符串。
我在那个函数中遗漏了什么?
感谢您的帮助
解决方法
在下面使用
EXECUTE IMMEDIATE(
SELECT 'SELECT id,' ||
STRING_AGG(
'MAX(IF(key = "' || key || '",value,NULL)) as `' || key || '`'
)
|| ' FROM `project.dataset.table` GROUP BY id ORDER BY id'
FROM (
SELECT key
FROM `project.dataset.table`
GROUP BY key
ORDER BY key
)
);