zoukankan      html  css  js  c++  java
  • SQL SERVER 查询字段是JSON格式的方法

    项目中,有时候会将某个字符串类型的字段定义为JSON格式。
    如果要查询其某个字段包含了某值,则通常用关键字 LIKE '%"IsCheckedTemporary":true%'

    SQL SERVER2016版本开始,有了对JSON操纵的内置函数。具体见官方连接:
    https://docs.microsoft.com/zh-cn/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15
    兹举例如下:
    一、如果字段内容是这样的JSON格式:
    [{"userid":"10001","username":"戊土","level":"5"},{"userid":"10002","username":"丙火","level":"2"}]
    则sql语句:
    SELECT *,UserInfo.username FROM dbo.包含JSON字段的表名 CROSS APPLY OPENJSON (包含JSON字段的表名.字段)
    WITH (
    userid INT N'$.userid',
    username NVARCHAR (200) N'$.username',
    level INT N'$.level'
    ) AS UserInfo
    WHERE UserInfo.userid='10001'
    二、如果字段内容是这样的JSON格式:
    {"province":[{"pname":"广东"},{"pname":"广西"}],"city":[{"cname":"上海市"},{"cname":"杭州市"}]}
    则sql语句:
    SELECT *,Province.pname,City.cname FROM dbo.包含JSON字段的表名
    CROSS APPLY OPENJSON (包含JSON字段的表名.字段,N'$.prov')
    WITH (pname nvarchar(max) N'$.pname') AS Province
    CROSS APPLY OPENJSON (包含JSON字段的表名.字段,N'$.city')
    WITH (cname nvarchar(max) N'$.cname') AS City
    WHERE Province.pname='广东' AND City.cname='上海市'
  • 相关阅读:
    springboot接口测试
    谷粒学院_day08_课程管理_添加课程之课程发布(后端开发)
    谷粒学院_day03_vue组件
    谷粒学院_day03_vue固定代码抽取
    vue自定义事件
    vue插槽slot
    vue基本语法
    Vue之axios异步通信
    无归岛[HNOI2009]
    仓库建设[ZJOI2007]
  • 原文地址:https://www.cnblogs.com/johsan/p/12612367.html
Copyright © 2011-2022 走看看