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...