Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
I have a scenario where I need to generate a dynamic query and wondered if it is possible to do so by "creating" a query from text.
For example, if I had a text field that contained the following:
let
Source = 1 = 1
in
Source
could that then be executed as a query somehow?
Solved! Go to Solution.
Yes. You can use Expression.Evaluate("M expression") for that.
Expression.Evaluate - PowerQuery M | Microsoft Docs
Pat
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Looks like you are missing the let and in parts of your query inside your Expression.Evaluate.
Pat
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
That did the trick! It's a bummer the applied steps aren't listed using this method, but the method is great just the same. Appreciate it!
Yes. You can use Expression.Evaluate("M expression") for that.
Expression.Evaluate - PowerQuery M | Microsoft Docs
Pat
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Very cool! Didn't know about that function, @mahoneypat. Can this handle more complex queries? I keep getting an error when I try something like the following:
= Expression.Evaluate( "Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText(""i45WclTSUTI0MFCK1YlWcgKyjaBsZyDbGMSOBQA="", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Value = _t]),
#""Changed Type"" = Table.TransformColumnTypes(Source,{{""Name"", type text}, {""Value"", Int64.Type}}),
#""Filtered Rows"" = Table.SelectRows(#""Changed Type"", each ([Name] = ""B""))""""")
Here's the original in the Advanced Editor:
and here's the original code:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTI0MFCK1YlWcgKyjaBsZyDbGMSOBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Value = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Value", Int64.Type}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Name] = "B"))
in
#"Filtered Rows"