SQL 将字符串拆分为列

卢卡斯

我有这个问题,表中有一个字符串列,其中的数据是混合但不变的。

前任。

{ "Supervisor": "you", "Number_SAP": "33333333333", "SUPPORT_level":"on,NBD2222x5; KeepYourHardDrive-MultiDrive PCYourDriveYour", "SUPPORT_active": "1999-01-31", "SUPPORT_required":  false, "Power_Consumption":0, and many others}

它们在不同的行中的排列方式不同,顺序可能不同,例如

{ "Power_Consumption": 4, "Number_SAP": "22222222222222", "SUPPORT_level": "OFF,ddd333222x5; MultiDrive", "SUPPORT_active": "2000-01-31","Supervisor": "ME", "SUPPORT_required": "True", and many others.}

如何仅将其想要的值分发到列,例如

列名:

能量消耗 SAP 否 支持
“功耗_消耗”:0 "Number_SAP": "33333333333333" "SUPPORT_active": "1999-01-31"
“功耗_消耗”:4 "Number_SAP": "22222222222222" "SUPPORT_active": "2000-01-31"

或者

列名:

能量消耗 SAP 否 支持
0 3333333333333 1999-01-31
4 2222222222222 2000-01-31

解析没问题,但仅限于 4 个项目,但在我的情况下最多可以有 9 个项目。

若罗夫

存储的数据是有效的 JSON 内容,因此可能最合理的方法是使用OPENJSON()显式架构解析数据(请注意,您至少需要 SQL Server 2016 才能使用此功能):

SELECT j.*
FROM (VALUES
   ('{"Supervisor":"you","Number_SAP":"33333333333","SUPPORT_level":"on,NBD2222x5; KeepYourHardDrive-MultiDrive PCYourDriveYour","SUPPORT_active":"1999-01-31","SUPPORT_required":false,"Power_Consumption":0}'),
   ('{"Power_Consumption":4,"Number_SAP":"22222222222222","SUPPORT_level":"OFF,ddd333222x5; MultiDrive","SUPPORT_active":"2000-01-31","Supervisor":"ME","SUPPORT_required":"True"}')   
) d (Data)
OUTER APPLY OPENJSON(d.Data) WITH (
   [Power Consumption] int '$.Power_Consumption',
   [SAP No] varchar(20) '$.Number_SAP',
   [Support] varchar(10) '$.SUPPORT_active'
) j

结果:

能量消耗 SAP 否 支持
0 333333333333 1999-01-31
4 22222222222222 2000-01-31

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL - 在之后将连接的字符串拆分为列;

SQL查询将字符串拆分为SQL中的2列

SQL-将字符串拆分为新行

SQL Server:将字符串拆分为行

Sql Server 使用将字符串拆分为表

使用sql中的正则表达式将字符串拆分为多列

将长字符串的列拆分为每行sql 1个单词

SQL查询,用于将字符串拆分为行和列

如何将sql中的字符串拆分为多列

根据字符串将多列分开的行拆分为单列-SQL Server

在SQL Server中将字符串拆分为列

将SQL字符串拆分为多个字符串

使用 SQL Server 将一列中的字符串中的多个值拆分为多列

如何将单个字符串拆分为两个不同的列sql

SQL Server:如何使用2个分隔符将字符串拆分为列和行?

将单列(和多行)中的字符串拆分为SQL Server中的多列(缺少数据)

如何将列中的字符串拆分为行(在两行上,匹配位置)SQL

使用SQL将子字符串长度可变的单元格中的一个字符串拆分为几个不同的列

C#将包含'GO'关键字的字符串拆分为多个sql语句

PL / SQL-将字符串拆分为关联数组

SQL XML解析将字符串拆分为字母“ TH”

SQL 提取给定字符串的两个逗号之间的字符串,并拆分为两列的键值对

使用SQL在每第n次出现分隔符后将字符串拆分为单独的列,并根据需要添加默认值

如何将一行拆分为两个字符串,然后将第二个字符串复制到SQL的单独列中?

在SQL Server中将字符串拆分为给定的行分隔符和列分隔符的表

SQL将单词拆分为单独的字符

将字符串拆分成行Oracle SQL

在列中拆分字符串并在sql中旋转

MS Sql按子字符串拆分特定列