ClickHouse tips #10: Null behavior with LowCardinality columns
If you have LowCardinality(String) column, inserting a NULL value will work fine. It will just treat it like you just have inserted an empty string (‘’). Let’s see an example.
Let’s insert some values now.
And now let’s see what has been inserted. As you can see, even though we inserted a NULL value, internally it’s saved as an empty string.
Bonus: can you create LowCardinality(Nullable(String)) columns?
Yes, you can.
Using {% code-line %}LowCardinality(Nullable(String)){% code-line-end %} instead of {% code-line %}Nullable(String){% code-line-end %}, apart of the benefits that it can bring {% code-line %}LowCardinality{% code-line-end %} if the conditions are right, also allows you to order by that column. See an example here: