从SQL Server列中获取KEY VALUE对

时间:2013-07-05 02:25:02

标签: sql json sql-server-2008

我在SQL Server表中有一个名为JsonData的列,其中数据为键/值对, 像这样:

  

{ “ID”:42662 “VERSIONNUMBER”:0 “IsCustom”:假 “SaleType”:0 “RedBookSpotId”:232164 “RegistrationNumber”: “AUTOTEST”, “价格”:29500.00,“RegistrationExpiryYear “:2013年,” RegistrationExpiryMonth “:9,” HasRWCertificate “:假的,” 里程表 “:43842,” ExteriorColour “:” 蓝 “ ”InteriorColour“: ”黑“, ”SummaryDescription“:” 这   是一个自动化测试广告 - 简短评论“,”详细描述“:”这   是一个自动化测试广告 - 详细   评论”, “StandardFeatures”:[], “OptionalFeatures”:[], “AfterMarketFeatures”:[]}

我想写一个T-SQL查询,只获取Odometer

的值

1 个答案:

答案 0 :(得分:2)

SQL Server 2008 has no support for JSON data types。您可以将您的姓名添加到请求它的人员列表中。

如果你知道列的排序,我想你可以使用substring函数编写一个复杂的查询,但这违反了JSON的键/值对的很多用处。

还有一些effort by third parties to add JSON functionality to SQL Server

如果只需要查询一列或两列,我建议直接在表中的列中插入和更新它们,而不是查询存储的JSON。这是一个轻微的数据重复,但请考虑在这种情况下你的问题的答案是多么容易。

FYI PostgreSQL 9.3 has support for JSON data types每次发布都会越来越好。