Clickhouse Nullable列的轉換處理 Nested type Array(String) cannot be inside Nullable type (version 19.5....

直接看解決方案請翻到最后一行

1.Nullable列

優(yōu)點:允許Null值插入,在導數(shù)時對null值不需要額外處理
缺點,Nullable 列相比普通列需要額外的存儲空間且對性能有一些影響,且一些函數(shù)splitByString對Nullable列是不支持的

2.轉換處理

我們在建表時幾乎每個列都加上了Nullable,這就導致了處理這些列遇見一些問題
例如names Nullable(String)字段,我想要按逗號切分這個names

select splitByString(',',names) from table

會報如下錯誤
DB::Exception: Nested type Array(String) cannot be inside Nullable type (version 19.5.3.1)
那么如何解決這個問題呢?當然是把Nullable(String)轉換成String了
剛開始試一下了幾種方法

  • toString(names)
  • substring(name,1,length(name)) + 別名
  • concat(names,'') + 別名
  • 組合查詢
  • 子查詢
    發(fā)現(xiàn)并沒有什么 軟 用

后來換成cast(names as String)成功解決問題

select splitByString(',',cast(names as String)) from table
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容