SQL Server 2014从JSON列获取数据

时间:2017-11-01 07:36:21

标签: sql sql-server json

我有一个包含许多列的表,其中一列包含JSON结构化数据, 例如:

{"firstname": "john", "lastname": "tim"}

我需要获取所有lastname数据。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

以下是从lastname阅读JSON数据的另一种方法:

SELECT REPLACE(REPLACE(REPLACE(DATA, '}', ''), '"lastname":', ''), '"', '') [LastName]
FROM
(
    SELECT split.a.value('.', 'NVARCHAR(MAX)') DATA
    FROM
    (
        SELECT CAST('<A>'+REPLACE(<jsoncolumn>, ',', '</A><A>')+'</A>' AS XML) AS String
        FROM <table_name>
    ) A
    CROSS APPLY String.nodes('/A') AS split(a)
) AA
WHERE AA.DATA LIKE '%lastname%';

结果:

LastName
tim