![](/img/trans.png)
[英]how to split the column into multiple columns using delimeter in SQL server?
[英]How to split a column into multiple columns using SQL
我有一個列,其中包含列的名稱和該列的值,格式如下:
column_name
name1: value1 name2: valu2 name3: value3 name4: value4 name5: value5
我不想使用上面的設置,而是希望使用以下格式的列:
名稱1 | 名稱2 | 名稱3 | 名稱4 | 名稱5 |
---|---|---|---|---|
價值1 | 價值2 | 價值3 | 價值4 | 價值5 |
問題是這些值在整個列中不一致,有時我會有這些值的組合,有時沒有,有時只有一個,但不管順序如何,所有這些列都必須是創建的。 如何以我不必指定這樣的值的通用方式調用它們:
CASE WHEN CHARINDEX(' ',column_name)>0
then SUBSTRING(column_name,1,CHARINDEX(' ',column_name)-1)
else column_name end name1,
CASE WHEN CHARINDEX(' ',column_name) > 0
THEN SUBSTRING(column_name,CHARINDEX(' ',column_name)+1,len(column_name))
ELSE NULL END as name2
在這種情況下,我必須創建一個列類型JSON如下圖所示
然后您可以將此鍵值存儲為 JSON 數組,並在您想再次使用此數據時對其進行解碼。
缺點是你不能直接從數據庫中搜索這個數組。
更新:如何在紅移上使用 JSON https://docs.aws.amazon.com/redshift/latest/dg/json-functions.ZFC35FDC70D5FC69D269883A822C7A53E
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.