快速更新,以防有人想改进首帖中的脚本。
实际上,可以一次性提取所有数据,似乎与数据量大小无关:![]()
(我已在包含 id 和 raw 列的大型 posts 表上进行了压力测试,它成功完成了!)
示例查询:
SELECT 'id'
|| string_agg(E'\n' || case when posts.id::text is null then '-1' else posts.id::text end
,''
ORDER BY posts.id asc) as value
FROM posts
运行后,它将把近乎 CSV 格式的文件作为一个值打印出来,因此所有内容都会显示在一页上。您随后只需去掉 value 开头和结尾的 ",即可得到可用的 CSV 文件:
您自然可以通过添加新的 CSV 列及其对应数据来扩展此方法:
SELECT 'id,newcolumn'
|| string_agg(E'\n' || case when posts.id::text is null then '-1' else posts.id::text end
|| string_agg(E'\n' || case when posts.newcolumn::text is null then '-1' else posts.newcolumn::text end
,''
ORDER BY posts.id asc) as value
FROM posts
一旦更新以支持此类查询,Power BI 就无需跨多页遍历,从而加快数据检索速度。
