将一个列转换为JSON

3
使用Azure SQL Server,我正在尝试将仅一个列转换为JSON格式。数据存储在nvarchar字段中。使用"For Json Auto"将转换所有字段和所有行。我需要的是仅转换一个列。
通过转换为JSON,我的意思是可以点击,在SSMS内部查看其数据的新窗口。
假设表(Logs)有两列:LogId和LogData。LogData是nvarchar(max),包含JSON数据。
我需要查询该表,并拥有可点击的logData列。

FOR JSON 只会显示您选择的列和行的结果。您可能在列列表上有一个 *。添加一个新的 JSON 类型列并执行 UPDATE 来设置它的值,然后删除旧列。 - EzLo
感谢 @EzLo,FOR JSON 为我提供了所有列和行的一个 JSON。我正在寻找一种方法来仅转换一列。 - Kamran
1
提供样例数据和期望的结果可以帮助更好地理解问题。Json并非一种类型,而是一种序列化格式 - nvarchar 可以包含任何您想要的字符串,无论其是否格式化为Json。请编辑您的问题,包括相关表的DDL和一些DML作为样例数据以及所需的结果。 - Zohar Peled
感谢 @ZoharPeled。我添加了更多信息。 - Kamran
“clickable”的意思是什么?你在哪里运行查询? - Zohar Peled
@ZoharPeled,这是针对SSMS的。 当结果网格中有JSON而不是简单文本时,它会变成一个链接,点击它将打开一个新窗口并在该窗口中显示JSON。 我想要实现的主要目标是不必将JSON列复制并粘贴到记事本中进行检查。 - Kamran
1个回答

10
您可以尝试以下方式,仅获取一个列作为JSON
select o.*,
 (select YourColumnForJson  
    from YourTable i 
        where o.Identifer=i.Identifer for json auto) as JsonColumn 
 from YourTable o

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接