Powerbi Power Query-从表中选择列,而不是随后删除
从数据库表(如SQL Server)导入数据时的默认行为是引入所有列,然后选择要删除的列 有没有相反的方法?ie从表中选择所需的列?最好不使用本机SQL解决方案 M:Powerbi Power Query-从表中选择列,而不是随后删除,powerbi,powerquery,Powerbi,Powerquery,从数据库表(如SQL Server)导入数据时的默认行为是引入所有列,然后选择要删除的列 有没有相反的方法?ie从表中选择所需的列?最好不使用本机SQL解决方案 M: let db = Sql.Databases("sqlserver.database.url"){[Name="DatabaseName"]}[Data], Sales_vDimCustomer = db{[Schema="Sales",Item="vDimCustomer"]}[Data], remove
let
db = Sql.Databases("sqlserver.database.url"){[Name="DatabaseName"]}[Data],
Sales_vDimCustomer = db{[Schema="Sales",Item="vDimCustomer"]}[Data],
remove_columns = Table.RemoveColumns(Sales_vDimCustomer,{"Key", "Code","Column1","Column2","Column3","Column4","Column5","Column6","Column7","Column8","Column9","Column10"})
in
remove_columns
上面的代码段显示了连接和随后的删除
与本机SQL方式相比:
= Sql.Database("sqlserver.database.url", "DatabaseName", [Query="
SELECT Name,
Representative,
Status,
DateLastModified,
UserLastModified,
ExtractionDate
FROM Sales.vDimCustomer
"])
我看不到很多关于}[Data],
值的文档,所以我希望我可以劫持该字段来指定该数据中的哪些字段
任何想法都很好!:)
我首先关心的是,当这被编译成SQL时,它会作为两个查询发送(如ExpressProfiler中所述)
第一个查询删除选定的列,第二个查询选择所有列
我的第二个担忧是,如果在数据库中添加或删除列,则可能会使我的报告崩溃(Excel表格中的其他列会将结构化表格语言公式跳转到错误的列)。使用本机SQL不是问题,因为它不会选择新列,如果删除了该列,它实际上会崩溃,这是我想知道的。哎哟,在我重新思考并查看了该列之后,这其实很容易
让
db=Sql.Databases(“sqlserver.database.url”){[Name=“DatabaseName”]}[Data],
Sales\u vDimCustomer=Table.SelectColumns(
(db{[Schema=“Sales”,Item=“vDimCustomer”]}[Data],
{
“姓名”,
“代表”,
“地位”,
“DateLastModified”,
“UserLastModified”,
“提取日期”
}
)
在里面
销售部/客户部
这也比另一种方法加载的速度快得多,只生成了一个SQL请求,而不是两个。哎哟,在我再想一想并看一看之后,这其实很容易
让
db=Sql.Databases(“sqlserver.database.url”){[Name=“DatabaseName”]}[Data],
Sales\u vDimCustomer=Table.SelectColumns(
(db{[Schema=“Sales”,Item=“vDimCustomer”]}[Data],
{
“姓名”,
“代表”,
“地位”,
“DateLastModified”,
“UserLastModified”,
“提取日期”
}
)
在里面
销售部/客户部
这也比另一种方法加载的速度快得多,只生成了一个请求的SQL,而不是两个。
表。SelectColumns
是正确的解决方案!如果使用预览编辑器多选所需的列并单击鼠标右键,则“删除其他列”操作将生成对表的调用。SelectColumns
:)Table.SelectColumns
是正确的解决方案!如果使用预览编辑器多选所需的列并单击鼠标右键,则“删除其他列”操作将生成对Table.SelectColumns
:)的调用