sqlserver json 查询

select * from 表名 where JSON_VALUE(字段名,‘$."json字段名"‘) like ‘%查询关键字符串%‘

$表示object的根

例 select * from Country where JSON_VALUE(Name,‘$."CountryName"‘) like ‘%国%‘

测试数据

 
id(INT) json(VARCHAR) path1(VARCHAR)
1 [10, 20, [30, 40]] $[2][*]
2 {"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"} $.ccc.hhh[*]
3 {"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg",hhh":["h0","h1","h2"]},"iii":"jjj"} $.ccc.hhh[1]
4 [10, 20, [30, 40]] NULL
5 NULL $[2][*]
6 "{xx]" "$[2][*]"

原文地址:https://www.cnblogs.com/upshania/p/12005138.html

时间: 2024-08-02 10:53:57

sqlserver json 查询的相关文章

SQLserver分页查询实例

Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2 第一种方案.最简单.普通的方法: SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 45000 ID

SQLServer 分组查询相邻两条记录的时间差

原文:SQLServer 分组查询相邻两条记录的时间差 首先,我们通过数据库中表的两条记录来引出问题,如下图 以上为一个记录操作记录的表数据.OrderID为自增长列,后面依次为操作类型,操作时间,操作人. 现在的问题是:要求筛选出数据库中从“接收”到“送出”的时间差超过2天的全部记录.即如上图两笔单据中,红色框既是要筛选出的,绿色框为正常过滤的. 为了定位相邻记录,方法为给查询语句的返回记录加个自动编号列放入临时表中,再对临时表进行操作. --1.首先查出表中符合條件的所有信息 select

SQLServer分页查询存储过程

项目中用到的SQLServer分页查询存储过程. [存储过程] create PROCEDURE prcPageResult -- 获得某一页的数据 -- @currPage int = 1,                         --当前页页码 (即Top currPage) @showColumn varchar(2000) = '*',           --需要得到的字段 (即 column1,column2,......) @strCondition varchar(200

sqlserver分页查询

SQL Server 2005引入的新方法. SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY keyField DESC) AS rowNum, * FROM tableName) AS t WHERE rowNum > start AND rowNum <= end 其中: keyField为表tableName的一个字段(最好是主键): tableName为查询的表名: DESC可以按需换为ASC: start为要取的结果集的起始记录 en

SqlServer 一个查询语句以致tempdb增大55G (转载)

SqlServer 一个查询语句导致tempdb增大55G 今天操作着服务器,突然右下角提示“C盘空间不足”! 吓一跳!~ 看看C盘,还有7M!!!这么大的C盘空间怎么会没了呢?搞不好等下服务器会动不了! 第一反应就想可能是日志问题,很可能是数据库日志问题 于是查看日志,都不大,正常. dbcc sqlperf(logspace) 看看系统报错: 是tempdb问题,但是刚才看日志才几M,根据提示查看日志状态: select name,log_reuse_wait_desc from sys.d

JS 实现Json查询的方法实例

其实很简单,我这部分代码,前一部分是简单的实现如何使用JS写模板,第二个就是具体的实现了JSON查询的一个扩展. 以后查询Json就有了利器了. 代码如下: /*         * 定义模板函数        */        var template = function (queryArr) { var count = 0; for (var i = 0; i < queryArr.length; i++) { var e = queryArr[i]; if ($express) {  

SQLServer中查询的数字列前面补0返回指定长度的字符串

SQLServer中查询的数字列前面补0返回指定长度的字符串: 如: 角本如下: /****** Script for SelectTopNRows command from SSMS ******/ SELECT TOP 1000 [ID] ,[SN] ,[Name] FROM [EduDB].[dbo].[TestTab] select Right('0123456',SN) from TestTab; select RIGHT(REPLICATE('0',5)+CAST(SN AS var

ccf 201709-3 JSON查询

ccf 201709-3 JSON查询  解题思路: 首先,先逐行读入n行数据,因为数据中会经常出现 空格 或者是 换行,所以,我们遇到空格和换行就忽略,同时将转义字符进行处理,将n行数据存入一个一维数组中.由于"n ≤ 100,每行不超过 80 个字符.m ≤ 100,每个查询的长度不超过 80 个字符",所以我们可以将一位数组的大小设置为100*80,我偷了个懒直接设置了一维数组 in[maxn * maxn]. 接着需要构造一个映射,即做一个 string->string

JAVA入门到精通-第59讲-sqlServer基本查询

sqlServer基本查询 dept/emp表: MGR:直接上级的编号 HIREDATE:入职日期 COMM:奖金 DEPTNO:部门编号   创建dept表 创建emp表 deptno 是外键,foreign key refercnce dept (deptno) reference 引用: 针对外键: dept: emp: select查询: *能不用则不用:对资源是种浪费: 整个数据带过来是很大的: distinct 区别: distinct只会抛弃完全一样的: select disti