【问题标题】:JSON data handling in SQL ServerSQL Server 中的 JSON 数据处理
【发布时间】:2020-02-19 03:55:02
【问题描述】:

我有一个 Json 字符串。我想从那个 Json 字符串中获取价值。

这是我的 json 字符串 {"latitude":"22.5712854"},{"longitude":"88.4266847"}

我只想要 latitudelongitude ,使用 TSQL 查询。

【问题讨论】:

  • TSQL 无法原生解析 JSON,它是一种非常弱的文本解析和处理语言(尽管您可以仅使用 SUBSTRINGCHARINDEX 解析显示的字符串)。使用数据库外部的代码或可能是 CLR 过程几乎肯定会更容易做到这一点。这样您就可以使用支持 JSON 或至少具有良好文本处理功能的语言。
  • Parse JSON in TSQL的可能重复
  • 检查question 在此处重复,由 AndrewC 标记。它的答案更全面,并且提到了 SQL Server 2016 中的原生 JSON 支持。

标签: jquery sql sql-server json


【解决方案1】:

在 TSQL 中没有本地解析 JSON 的方法。但是 Phil Factor 创建了他自己的在 SQL 函数中解析 JSON 的实现。更多关于它的简单谈话博客文章中:Consuming JSON Strings in SQL Server

Aslo Ric Vander Ark 创建了自己的函数,但我没有对其进行测试。您可以阅读更多文章:A Function to Split JSON Data

【讨论】:

  • “在 TSQL 中没有本地解析 JSON 的方法。但是 Phil Factor 创建了他自己的实现 [在 TSQL 中解析 JSON]”
  • 列出的自定义实现不同于原生(即内置)方式。
【解决方案2】:

您可以使用JSON Select,它有几个函数可以从 JSON 中提取不同的数据类型。根据您的要求,您可以执行以下操作:

select 
    dbo.JsonDecimal(my_column, 'latitude') as latitude,
    dbo.JsonDecimal(my_column, 'longitude') as longitude
from my_table

披露:我是 JSON Select 的作者,因此对您使用它很感兴趣 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    相关资源
    最近更新 更多