sql server Json表达式解析函数

看到Json表达式, 在某些特殊情况下直接存json值。  下面取json表达式某项的值。

 

/*
取Json表达式值
参数: @code,@json
返回: @code 对应的值
eg.
@json='{"free":30,"first":1,"first fee":10,"per":30,"per fee":1.5}'
select dbo.UFJson('per',@json)
*/
create function [UFJson]
(
@code varchar(100),
@json nvarchar(2000))
returns nvarchar(500)
AS
BEGIN
    declare @codeindex as int
    declare @valueindex as int
    declare @endindex as int

    set @codeindex = charindex(@code,@json)
    --没有找到code项
    if (@codeindex = 0) return ''
    
    set @valueindex = charindex(':',@json,@codeindex)
    set @endindex = charindex(',',@json,@codeindex)    
    
    if (@endindex = 0) set @endindex = charindex('}',@json,@codeindex)    


    --格式不对 return ''
    if (@valueindex = 0 or @endindex = 0) return ''
        
    --正常返回
    return substring(@json,@valueindex+1,@endindex-@valueindex-1)
END

GO

转载于:https://www.cnblogs.com/pnglooog/p/3262026.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值