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

2022-09-27 05:36:06 字數 2423 閱讀 4483

1.查詢結果轉xml

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的儲存過程如下:

create procedure [dbo].[serializejson] (

@xml xml,

@json_xml nvarchar(max) output

)asbegin

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;

decla程式設計客棧re @fieldend int;

declare @key varchar(max);

declare @value varchar(max);

declare @startroot varchar(100);

set @startroot = '';

declare @endroot varchar(100);

set @endroot = '';

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 @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程式設計客棧-mgddvqqcdh-//結束捕捉異常

begin catch--//有異常**獲

set @json_xml = @xmlstring;

end catch;--//結束異常處理

end;

本文標題: sqlserver將查詢結果轉換為xml和json

本文位址: /shujuku/mssql/195736.html

SQL Server 將查詢結果匯出插入的簡單方式

1 首先將查詢結果新增到乙個原資料庫中不存在的表,表名隨意命名。例 select into sys gwjsdybak from sys gwjsdy where jsdm in 0101 0102 0103 0106 這個sys gwjsdybak就是不存在的表名,執行時會自動新建sys gwjs...

SQL語句查詢結果轉excel

直接輸出到servlet可以不用在硬碟上寫檔案 int rows l.size 行數 system.out.println l.size for int i 1 i 取得輸出流 outputstream out res.getoutputstream 清空輸出流 res.reset res.seth...

MSSQL將查詢結果橫向顯示

表1 year month,amount 200801 5 200802 6 200803 9 200802 4 顯示結果 year 01 02 03 tot 2008 5 0 0 5 2008 0 10 0 10 2008 0 0 9 9 2008 0 0 0 24 可能多個年,多個月create...