從數據庫表(如SQL Server)導入數據時的默認行爲是引入所有列,然後選擇要刪除的列。電源查詢 - 從表中選擇列而不是以後刪除
有沒有辦法做相反的事情?即從表中選擇你想要的列?最好不使用Native SQL解決方案。
L:
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表中的其他列會將您的結構化表語言公式跳轉到錯誤的列)。這不是使用Native SQL的問題,因爲它不會選擇新列,並且如果刪除了列,這實際上會導致崩潰,這是我想知道的。
'Table.SelectColumns'是正確的解決方案!如果你使用預覽編輯器來多選你想要的列並右鍵單擊,Remove Other Columns操作將生成對'Table.SelectColumns'的調用:) –
呃謝謝你的提示@CarlWalsh! –