SQL SERVER 2008 ,求一段存储过程写法

比如有个表 mytab,里面有2个字段,id 和 text

id 就是个编号,不说了
text  是个字符串,里面格式是 json 数据(例如 {"a":1,"b":2,"c":3,"d":"other"})

请问用纯 SQL 语句,如何在得知 id 号,以及json里的一个名,得出值?

例如,参数得到了 a ,就返回1  参数是b,就返回2 以此类推,参数是d,就返回other

求答案!

CREATE PROCEDURE [mytab_pro]
@char varchar(50)
AS
declare @text varchar(50),@textlength int,@zhi int,@w int,@c int,@cl int,@cl2 int
select @text=text from mytab where id=1
select @textlength=datalength(@text)
select @c=datalength(@char)
select @w=patindex('%'+@char+'%',@text)
print convert(varchar(50),@w)
if convert(varchar(50),@w)>0
begin
select @zhi=@w+@c-1+3
print @zhi
select right(left(@text,@zhi),1)
select right(@text,@textlength-@zhi+1) as '值'
select @cl=patindex('%,%',right(@text,@textlength-@zhi+1))
select @cl2=patindex('%}%',right(@text,@textlength-@zhi+1))
print @cl
print @cl2
if @cl!=''
select left(right(@text,@textlength-@zhi+1),@cl-1)
/*select right(left(@text,@zhi),@cl-1) as '值'*/
else if @cl2!=''
select left(right(@text,@textlength-@zhi+1),@cl2-1) as '值3'
end
GO
温馨提示:答案为网友推荐,仅供参考