There’s only one rule. Don’t break the fold! Before we start enforcing all these rules, we should start with something like a solid foundation of what does and doesn’t fold in Power Query and their SQL equivalents. Now, if you found this page and we’re like “what in the world is query folding?” read this incredible article, from this amazing author.
The disclaimer thing: This is a personal list compiled through testing during the 30-day query folding challenge either done by myself or members of the community (❤️). Every scenario is different, and every situation is unique. The functionality described in this article is subject to change and may evolve over time. Please feel free to leave comments at the end of the article or find me via the social channels to let me know of revisions.
About the data source: The source utilized for these scenarios was an Azure SQL Database or SQL Server. There may not be equal folding functionality within other systems, and you should always test your own solutions to determine full functionality before production use.
This is a great resource.
I am trying to get the domain from an email address. However, unfortunately, folding is not working with Text.PositionOf against a SQL Server on prem data source in a Dataflow Gen2. The folding indicator is displaying “Analysis on this step was inconclusive.”
The folding indicators are a “guide” but not always the truth is what I have found at times, if you check the logs against the SQL Server does it say if the statement is being properly generated?
This is pretty cool, are there updates to this list?
As the engineering team adds support for more functions to fold, I absolutely try to keep this updated. Or if you find something that works that I did not have documented, please let me know.
I found a minor correction. It is actually Text.Middle that folds to substring in SQL. I found that Text.Range refuses to fold even though it technically can be used to do the same thing as Text.Middle
Thanks for sending a note! Let me update the article then 🙂