国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

香港云服务器
服務器之家 - 數據庫 - Sql Server - SqlServer將查詢結果轉換為XML和JSON

SqlServer將查詢結果轉換為XML和JSON

2020-05-21 15:55ArtlessBruin Sql Server

這篇文章主要介紹了SqlServer將查詢結果轉換為XML和JSON的相關資料,需要的朋友可以參考下

很久之前用到的,現在整理在這,里面一些代碼來源于網上,不過有些bug已被我修改了。

1.查詢結果轉XML

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DECLARE @ParameterSQL NVARCHAR(MAX)='SELECT * FROM table';
DECLARE @SQL NVARCHAR(MAX)
DECLARE @XMLString VARCHAR(MAX)
DECLARE @XML XML
DECLARE @Paramlist NVARCHAR(1000)
SET @Paramlist = N'@XML 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))
SELECT @XML;
SELECT @XMLString;

其中@ParameterSQL為要查詢的語句,@XMLXML格式數據,@XMLStringXML轉成字符串

2.查詢結果轉JSON

查詢結果轉換成json需要經過兩個步驟,首先將查詢結果轉成XML數據,然后通過XML數據轉成json

XML轉JSON的存儲過程如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
CREATE PROCEDURE [dbo].[SerializeJSON] (
   @XML XML,
   @json_xml NVARCHAR(MAX) OUTPUT
  )
AS
BEGIN
  DECLARE @XMLString NVARCHAR(MAX);
  SET @XMLString = CAST(@XML AS NVARCHAR(MAX));
  BEGIN TRY--//開始捕捉異常
    DECLARE @JSON NVARCHAR(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);
        DECLARE @end INT = CHARINDEX('/>', @Row, @FieldStart);
        IF @end<1
          OR @end>@FieldEnd
        BEGIN
          SET @KEY = SUBSTRING(@Row, @FieldStart, @FieldEnd - @FieldStart);
          SET @JSON = @JSON + '"' + @KEY + '":';
          --//parse node value
          SET @FieldStart = @FieldEnd + 1;
          SET @FieldEnd = CHARINDEX('</', @Row, @FieldStart);
          SET @Value = SUBSTRING(@Row, @FieldStart, @FieldEnd - @FieldStart);
          SET @JSON = @JSON + '"' + @Value + '",';
        END;
        SET @FieldStart = @FieldStart + LEN(@StartField);
        SET @FieldEnd = CHARINDEX(@EndField, @Row, @FieldStart);
        SET @FieldStart = CHARINDEX(@StartField, @Row, @FieldEnd);
      END;
      IF LEN(@JSON)>0
        SET @JSON = SUBSTRING(@JSON, 0, LEN(@JSON));
      SET @JSON = @JSON + '},';
      --// for each row
      SET @RowStart = CHARINDEX(@StartRoot, @XMLString, @RowEnd);
    END;
    IF LEN(@JSON)>0
      SET @JSON = SUBSTRING(@JSON, 0, LEN(@JSON));
    --//SET @JSON = '[' + @JSON + ']';
    SET @json_xml = @JSON;
  END TRY--//結束捕捉異常
  BEGIN CATCH--//有異常被捕獲
    SET @json_xml = @XMLString;
  END CATCH;--//結束異常處理
END;

以上所述是小編給大家介紹的SqlServer將查詢結果轉換為XML和JSON,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

延伸 · 閱讀

精彩推薦
431
主站蜘蛛池模板: 在线免费看黄视频 | 欧美精品久久 | 永久黄网站色视频免费观看w | 久久99精品久久久久久园产越南 | 国产一区亚洲二区三区 | 欧美精品一区二区三区手机在线 | 96成人爽a毛片一区二区 | 国产精品久久久久久久久晋中 | 日韩第一区 | 国产一级二级毛片 | 一级毛片免费完整视频 | 日韩精品一区二区三区在线观看视频网站 | 国产乱码精品一区二区三区中文 | 精品久久久久久久久久久久 | 国产精品久久久久国产a级 成人a在线视频 | 综合色av| 自拍亚洲 | 久久综合久色欧美综合狠狠 | 18视频在线观看网站 | 四虎永久免费影院 | 国产宾馆自拍 | www久草| 国产欧美日韩 | 亚洲一区二区三区在线播放 | 97精品一区二区 | 欧美二区三区视频 | 精品久久久久香蕉网 | 国产精品高清在线观看 | 欧美高清一区 | 日日麻批免费视频40分钟 | 中国黄色片在线观看 | 黄色毛片免费视频 | 国产成人a亚洲精品 | 毛片无码国产 | 亚洲天堂一区在线 | 久久一级淫片 | 亚洲一区二区在线 | 久久久久久久久久久久免费 | 一区二区三区在线观看国产 | 亚洲综合社区 | 亚洲毛片在线 |