谈谈SQL Server中JSON_VALUE的用法
今天看同事代码的时候不是很理解这段代码里面JSON_VALUE的作用,我查了下对应的数据库信息以及程序打印出来的结果,用我自己理解的话整理了出来。
sql.Append(" SELECT JSON_VALUE(A.Region, '$.nx') AS RegionX,JSON_VALUE(A.Region, '$.ny') AS RegionY, JSON_VALUE(A.Region, '$.nw') AS RegionW, ");
sql.Append(" JSON_VALUE(A.Region, '$.nh') AS RegionH , JSON_VALUE(A.Region, '$.ni') AS RegionI ");
sql.Append("FROM tb_UserLayouts as A WHERE UserId=@UserId ");
接下来我去查看了数据库中tb_UserLayouts这个表中的 Region列,内容如下:
上面的Region列是一个json数据列,以上面语句第一个JSON_VALUE为例:
select JSON_VALUE(A.Region, ‘$.nx’) as RegionX。
$.nx表示取这个列中nx的值,结果为1。后面的as操作把这个值传给新命名的RegionX列,查询出来结果应为"regionX": “1”