我有一个 SQL Server 数据库,其中有一列名为 Categories
包含格式为 nvarchar(50)
的逗号分隔值.每列的长度在记录之间是可变的。
我创建了一个名为 CategoriesJSONArray
的新空列.对于所有现有记录,我需要转换 Categories
中的值到 JSON 数组并将这些转换后的值写入 CategoriesJSONArray
.
我将如何使用 T-SQL 或从 SSMS UI 中完成此操作?
编辑:例如,根据要求
当前的:
Record Categories
1 Sales, Support, Growth
2 Sales, Growth
3 Sales
4 Support, Growth, Sustain
期望:
Record Categories CategoriesJSONArray
1 Sales, Support, Growth { "Sales" : "Support" : "Growth"}
2 Sales, Growth { "Sales" : "Growth"}
3 Sales { "Sales" }
4 Support, Growth, Sustain { "Sales" : "Growth" : "Sustain"}
最佳答案
有一些方法可以将分隔的字符串拆分为记录,然后将它们聚合回 JSON,但我认为在这里进行一些连接和替换会更容易:
SELECT record,
Categories,
'{"' + REPLACE(Categories, ', ', '":"') + '"}' as CategoriesJSONArray
FROM table
这可能需要一些调整来处理空格和诸如此类的东西,如果您的 JSON 变得更复杂,它显然不起作用,但它又快又脏。
关于arrays - SQL Server - 将一列逗号分隔的字符串转换为 JSON 数组到一个新列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43941188/