arrays - SQL Server - 将一列逗号分隔的字符串转换为 JSON 数组到一个新列中

标签 arrays sql-server type-conversion

我有一个 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/

相关文章:

sql-server - SQL 搜索的关键字

ios - 转换任何对象?到 [String :AnyObject? ] 总是失败

java - 将 Double 转换为保留每个数字的字符串值

javascript - 在对数组中找到最接近的数字对的最快方法是什么

ruby - 如何从 Ruby 中的数组中获取第一个、第二个和第五个元素?

javascript - 创建一个函数,该函数返回一个数组,该数组具有由两个数组或一个数组和多个单个项构建的唯一项

c# - SQLCMD模式下的ServerConnection.ExecuteNonQuery

sql - 从多个 ID 中获取最接近的日期

linux - Bash 转换多个子目录中的 PDF 文件

javascript - 如何让二维数组动态拆分成行