Forum Discussion
AnjanaPothineni
3 years agoFrequent Visitor
How to extract a table name from a query string in DAX
Hi, I have a Power BI report to list all the queries that are ran as part of query auduting and I have a column that contains a query. In order to simplify the data I need to split (extract) the ...
danextian
Super User
3 years agoHi AnjanaPothineni ,
I would do this in Power Query.
Frist split the query string by space. This will create column containing a list of text strings.
Next is to select which of the text strings begings with [ and ends with ].
Lastly, you can either expand the list as new rows or be concatenated in a single cell.
Paste this code into a blank query. I split the logic into several applied steps/column so it is easier to understand.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VY5BCsIwEEWvMnSlILmBi9j82kiakUyqQhOCBzBrj2+qCLoa/vDnzVuWTuDQx1S1RCUIVjs/TweE3Wd1DmzmPlrTMlgc7elxf27ATnncIrzhwdkBk3WQyB5GR2xTHQJPtIwSj1m9R9EiiJKpUVO13iPQia3/L406mKsOKA1ceCgrOlP7RuzXS2VwsT2saR6rwzemeh0RQL9OqaZKXc4v", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Sample query" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Sample query", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Split by Space", each Text.Split ( [Sample query], " " )),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Select Start and Square Brackets", each List.Select([Split by Space], each Text.StartsWith(_, "[") and Text.EndsWith(_, "]") )),
#"Expanded Select Start and Square Brackets" = Table.ExpandListColumn(#"Added Custom1", "Select Start and Square Brackets"),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Select Start and Square Brackets",{"Split by Space"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Removed Columns",{{"Select Start and Square Brackets", type text}})
in
#"Changed Type1"