- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ——女人,,,,,,,,,,,解析字符串函数,,,,,,,,,,,,,,,- - - - - - --------------------------------------------------- CREATE FUNCTION [dbo]。[fn_split] (@p_str VARCHAR (8000), @p_split VARCHAR (10)) RETURNS @tab 表(tid VARCHAR (2000)) 作为 开始 DECLARE @idx  INT DECLARE @len  INT SELECT @len =, LEN (@p_split), @idx =, CHARINDEX (@p_split, @p_str,, 1) 而(@idx 祝辞=,1) 开始 INSERT INTO  @tab SELECT 左(@p_str, @idx 作用;1) SELECT @p_str =,右(@p_str, LEN (@p_str),安康;@idx 作用;@len +, 1),, @idx =, CHARINDEX (@p_split, @p_str,, 1) 结束 如果(@p_str & lt;祝辞,”),INSERT INTO @tab SELECT @p_str 返回 结束;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,,,解析JSON字符串,, ------------------------------- ——p_jsonstr json字符串 ——p_key 键 ——返回p_key对应的值 CREATE FUNCTION [dbo]。[fn_parsejson] (@p_jsonstr VARCHAR (8000), ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@p_key VARCHAR (200)), RETURNS VARCHAR (3000) AS ,,,,, 开始 DECLARE @rtnVal  VARCHAR (3000); DECLARE 才能@i 智力; DECLARE 才能;@jsonkey  VARCHAR (200); DECLARE 才能;@jsonvalue  VARCHAR (1000); DECLARE 才能;@json  VARCHAR (8000); DECLARE 才能;@tmprow  VARCHAR (2000); DECLARE 才能;@tmpval  VARCHAR (2000); ,, 如果才能(@p_jsonstr IS  NOT 零) 开始 ,,,,SET @json =,取代(@p_jsonstr,‘{’,”); ,,,,SET @json =,取代(@json,‘}’,”); ,,,,SET @json =,取代(@json,“,”); DECLARE @json_cur 游标;,,,,声明外层游标 SET @json_cur =, CURSOR FOR SELECT tid 得到fn_split (@json,,‘,’); OPEN @json_cur——,打开游标(外层游标) FETCH NEXT 得到@json_cur INTO  @tmprow——,提取外层游标行 而(@@FETCH_STATUS =, 0) 开始 如果(@tmprow IS  NOT 零) 开始 SET @i =, 0; SET @jsonkey =,”; SET @jsonvalue =,”; ——DECLARE @str_cur 游标;声明内层游标 SET @str_cur =, CURSOR FOR SELECT tid 得到fn_split (@tmprow,“:”);——第二次拆分后的游标(内层游标) OPEN @str_cur ,,,打开游标 FETCH NEXT 得到@str_cur INTO  @tmpval——,提取内层游标行 而(@@FETCH_STATUS =, 0) 开始 如果(@i =, 0), 开始 SET @jsonkey =@tmpval 结束 如果(@i =, 1) 开始 SET @jsonvalue =@tmpval 结束 SET @i =, @i + 1 FETCH NEXT 得到@str_cur into  @tmpval——,内层游标下移一行 结束 CLOSE @str_cur——,关闭内层游标 DEALLOCATE @str_cur ——,释放内层游标 如果(@jsonkey =, @p_key) 开始 SET @rtnVal =@jsonvalue 结束 结束 FETCH NEXT 得到@json_cur INTO  @tmprow——,内层游标结束后,外层游标下移一行 结束 CLOSE @json_cur——,关闭外层游标 DEALLOCATE @json_cur——,释放外层游标 最终获得; ,, @rtnVal RETURN 才能; 结束
使用示例:
Select dbo.fn_parsejson ( ”{billPrice”:“1.67”,“buyDate”:“2009-12-30”,“currentStatus”:“有租约”, “装饰”:“精装”,“empCode”:“174999”,“,”houseId”:“F20BEBE259794C858C76122BCBACC71F”, “id”:“36398”,“isAccompany”:“0”,“isCollect”:“1”,“isOnlyOne”:“1”, “isShotProperty”:“1”,“noCollectReason”:“”,“停车”:“0”,“propertyNo”:“5885109”, “recordDate”:“2017-06-08”,“recordRemark”:“啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊“}” 之前,buyDate) >
解状态"置疑"析JSON字符串