Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
I have a field ("Is Success") in a fact table that is 100% populated with TRUE or FALSE values (boolean type at source but using Direct Query mode so it comes through as text). Putting this field into a table or slicer or any use of it in the report displays the values as (Blank), both of them. The other fields in the table work as expected, there are no slicers affecting the visual or field in question, I have tried with a completely separate report page etc. Not sure what's causing it, if it were related to relationships within the model I would expect other fields in the table to exhibit similar issues. Below is an image of the report view, with a different field from the table for comparison. Below that is the table in the data view.
I've not been able to find anybody else having this issue in the forum; not sure if it is Direct Query related (I'm using the 2.0 Snowflake connector). I've had a few other issue in the report with visuals (namely the Inforiver Super Filter) not interacting with each other (interaction icons aren't visible) but that does appear to be separate as I can remove these and the issue with the blank values persists.
Would appreciate any ideas as I'm all out.
Solved! Go to Solution.
Hey @ali_iopp ,
Thanks for the clear explanation and screenshots. This is a known quirk in Power BI with DirectQuery connections especially when dealing with boolean values or inferred data types. Let’s break down what’s happening and walk through solutions.
If you can modify your Snowflake query/view, explicitly cast the boolean to a string:
SELECT ..., CASE WHEN IS_SUCCESS THEN 'TRUE' ELSE 'FALSE' END AS IS_SUCCESS_TEXT FROM your_table;
Use IS_SUCCESS_TEXT in Power BI visuals instead of the original column.
If you're allowed to adjust the transformation logic (even in DirectQuery preview), convert the field like this:
Table.TransformColumns(Source, {{"Is Success", each Text.From(_), type text}})
This ensures that Power BI sees the values as proper text.
Workaround: create a small standalone table inside Power BI with known values:
SuccessFilter = DATATABLE("Success", STRING, {{"TRUE"}, {"FALSE"}})
You can connect it via relationship or DAX measure to drive filters, bypassing the unreliable DirectQuery column behavior.
As a last resort, if your dataset isn't huge and you don't need real-time data, switch to Import mode and use a calculated column:
IsSuccessString = IF('TableName'[Is Success], "TRUE", "FALSE")
If you found this solution helpful, please consider accepting it and giving it a kudos (Like) it’s greatly appreciated and helps others find the solution more easily.
Best Regards,
Nasif Azam
@Nasif_Azam thanks for your swift response.
That seems to be the issue, yes. It makes sense as initally the field worked when I was pulling the field directly from Snowflake using the table navigation, but I had to change source to a custom query to include additional date columns (as direct query doesn't provide the same functionality as import for dates) and this seems to be where the issue came in.
I was able to simply assert that the field be interpreted as text within the custom SQL (changed to `is_success::text` ) and that was enough for the values to come through as text which is all I needed. Another item to add to my list of things I don't like about Direct Query mode though.
Thanks again!
Hey @ali_iopp ,
Thanks for the clear explanation and screenshots. This is a known quirk in Power BI with DirectQuery connections especially when dealing with boolean values or inferred data types. Let’s break down what’s happening and walk through solutions.
If you can modify your Snowflake query/view, explicitly cast the boolean to a string:
SELECT ..., CASE WHEN IS_SUCCESS THEN 'TRUE' ELSE 'FALSE' END AS IS_SUCCESS_TEXT FROM your_table;
Use IS_SUCCESS_TEXT in Power BI visuals instead of the original column.
If you're allowed to adjust the transformation logic (even in DirectQuery preview), convert the field like this:
Table.TransformColumns(Source, {{"Is Success", each Text.From(_), type text}})
This ensures that Power BI sees the values as proper text.
Workaround: create a small standalone table inside Power BI with known values:
SuccessFilter = DATATABLE("Success", STRING, {{"TRUE"}, {"FALSE"}})
You can connect it via relationship or DAX measure to drive filters, bypassing the unreliable DirectQuery column behavior.
As a last resort, if your dataset isn't huge and you don't need real-time data, switch to Import mode and use a calculated column:
IsSuccessString = IF('TableName'[Is Success], "TRUE", "FALSE")
If you found this solution helpful, please consider accepting it and giving it a kudos (Like) it’s greatly appreciated and helps others find the solution more easily.
Best Regards,
Nasif Azam
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
57 | |
55 | |
55 | |
37 | |
30 |
User | Count |
---|---|
78 | |
66 | |
45 | |
44 | |
40 |