SQL中不同情況下反斜線到底要寫幾個

某段SQL中需要去解析一個欄位中的json字串,然而,裡邊的漢字也是編碼後的,存的格式類似

u6e38u620f

SQL語句理論上如下

get_json_object(extends,'$.cate')='u6e38u620f'

但是呢,實際系統執行中涉及到層層編譯過程,反斜線到底該寫幾個才能select出正確的結果呢?

實驗結論如下:

spark-hive>

情況下,輸入兩個反斜線即可

spark-hive> ……get_json_object(extends,'$.cate')='\u6e38\u620f'……

如果使用

sql中的多行合併函數collect_set、collect_list 、concat_ws

從資料庫取N個字段,然後組合到一起用“,”分割顯示,起初想到用CONCAT()來處理,好是麻煩,沒想到在手冊裡居然有提到CONCAT_WS(),非常好用。

CONCAT_WS(separator, str1, str2,...)

它是一個特殊形式的CONCAT(),第一個參數剩餘參數間的分隔符,分隔符可以是與剩餘參數一樣的字串,如果分隔符號是NULL,則回傳值也會為NULL,這個函數會跳過分隔符號參數後的任何NULL 和空字串,分隔符號將會被加到被連接的字串之間。

簡單例子如下:

訂閱@標題