源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

SQL Server中将查询结果转换为Json格式脚本分享

  • 时间:2020-11-13 02:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:SQL Server中将查询结果转换为Json格式脚本分享
脚本源码:
N XML OUTPUT' SET @SQL = 'WITH PrepareTable (XMLString)' SET @SQL = @SQL + 'AS(' SET @SQL = @SQL + @ParameterSQL+ 'FOR XML RAW,TYPE,ELEMENTS' SET @SQL = @SQL + ')' SET @SQL = @SQL + 'SELECT @XML=[XMLString]FROM[PrepareTable]' EXEC sp_executesql @SQL, @Paramlist, @XML=@XML OUTPUT SET @XMLString=CAST(@XML AS VARCHAR(MAX))    DECLARE @JSON VARCHAR(MAX) DECLARE @Row VARCHAR(MAX) DECLARE @RowStart INT DECLARE @RowEnd INT DECLARE @FieldStart INT DECLARE @FieldEnd INT DECLARE @KEY VARCHAR(MAX) DECLARE @Value VARCHAR(MAX)    DECLARE @StartRoot VARCHAR(100);SET @StartRoot='<row>' DECLARE @EndRoot VARCHAR(100);SET @EndRoot='</row>' DECLARE @StartField VARCHAR(100);SET @StartField='<' DECLARE @EndField VARCHAR(100);SET @EndField='>'    SET @RowStart=CharIndex(@StartRoot,@XMLString,0) SET @JSON='' WHILE @RowStart>0 BEGIN     SET @RowStart=@RowStart+Len(@StartRoot)     SET @RowEnd=CharIndex(@EndRoot,@XMLString,@RowStart)     SET @Row=SubString(@XMLString,@RowStart,@RowEnd-@RowStart)     SET @JSON=@JSON+'{'        -- for each row     SET @FieldStart=CharIndex(@StartField,@Row,0)     WHILE @FieldStart>0     BEGIN         -- parse node key         SET @FieldStart=@FieldStart+Len(@StartField)         SET @FieldEnd=CharIndex(@EndField,@Row,@FieldStart)         SET @KEY=SubString(@Row,@FieldStart,@FieldEnd-@FieldStart)         SET @JSON=@JSON+'"[url=]'+@KEY+'":'[/url]         -- parse node value         SET @FieldStart=@FieldEnd+1         SET @FieldEnd=CharIndex('</',@Row,@FieldStart)         SET @Value=SubString(@Row,@FieldStart,@FieldEnd-@FieldStart)         SET @JSON=@JSON+'"[url=]'+@Value+'",'[/url]            SET @FieldStart=@FieldStart+Len(@StartField)         SET @FieldEnd=CharIndex(@EndField,@Row,@FieldStart)         SET @FieldStart=CharIndex(@StartField,@Row,@FieldEnd)     END        IF LEN(@JSON)>0SET @JSON=SubString(@JSON,0,LEN(@JSON))     SET @JSON=@JSON+'},'     --/ for each row        SET @RowStart=CharIndex(@StartRoot,@XMLString,@RowEnd) END IF LEN(@JSON)>0SET @JSON=SubString(@JSON,0,LEN(@JSON)) SET @JSON='['+@JSON+']' SELECT @JSON    END GO
使用方法:
[u]复制代码[/u] 代码如下:
EXEC[SerializeJSON]'SELECT*FROM[Employee_TBL]'
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部