为何Power Query中使用合并运算符添加计算列后查询折叠被禁用?
解决Power BI中自定义列导致查询折叠失效的问题
问题原因
你使用的??运算符对应的M语言逻辑,Power Query无法直接将其映射为SQL的ISNULL/COALESCE函数,因此触发了本地计算,中断了查询折叠。
可行解决方案
用
List.Coalesce替代??
修改自定义列步骤为:= Table.AddColumn(#"PreviousStep", "col3", each List.Coalesce({[col1], [col2]}))这个写法通常能被Power Query解析为SQL的
COALESCE函数,从而保持查询折叠。你可以右键该步骤,选择"查看本机查询"验证是否生成了对应的SQL语句。直接使用自定义SQL从源获取数据
在Power BI连接SQL Server时,选择"高级选项",输入自定义查询语句:SELECT col1, col2, ISNULL(col1, col2) AS col3 FROM YourSourceTableName这种方式从数据源直接返回包含计算列的结果集,全程保持查询折叠,且不需要修改源数据库的任何对象(无需创建视图)。
验证查询折叠
右键查询的最后一步,选择"查看本机查询":如果能看到对应的SQL代码,说明查询折叠生效;如果提示"无法显示本机查询",则表示折叠已中断。
内容的提问来源于stack exchange,提问作者ahin
相关产品推荐
相关产品推荐

