![](/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.