在我们的SQL Server表中,我们存储了一个带有字符串数组的json对象。我想通过编程将该字符串拆分成多个列。但是,我似乎无法让它工作,甚至不知道是否可能。
在WITH子句中创建多个列是否可行,还是在SELECT语句中执行更明智?
我简化了一些代码,以便给出一个简单的想法。
示例JSON类似于
在WITH子句中创建多个列是否可行,还是在SELECT语句中执行更明智?
我简化了一些代码,以便给出一个简单的想法。
示例JSON类似于
{"arr": ["str1 - str2"]}
。SELECT b.* FROM [table] a
OUTER APPLY
OPENJSON(a.value, '$.arr')
WITH
(
strSplit1 VARCHAR(100) SPLIT('$.arr', '-',1),
strSplit2 VARCHAR(100) SPLIT('$.arr', '-',2)
) b
{ "arr": ["str1 - str2"] }
是一个包含单个字符串的数组。{ "arr": ["str1","str2"] }
是一个包含两个字符串的数组。你是指后者,还是前者正确? - JohnLBevanSPLIT
函数。但在 SQL Server 2016 及以上版本中有STRING_SPLIT
函数。不过,您应该修复 JSON 内容。如果您想要一个字符串数组,为什么不使用["str1","str2"]
而不是["str1 - str2"]
呢? - Panagiotis Kanavos