成熟丰满熟妇高潮XXXXX,人妻无码AV中文系列久久兔费 ,国产精品一国产精品,国精品午夜福利视频不卡麻豆

您好,歡迎來到九壹網(wǎng)。
搜索
您的當前位置:首頁SQLSERVER中XML查詢:FORXML指定AUTO

SQLSERVER中XML查詢:FORXML指定AUTO

來源:九壹網(wǎng)

SQL SERVER中XML查詢:FOR XML指定AUTO前言 在SQL SERVER中,XML查詢可以指定RAW,AUTO,EXPLICIT,PATH。本文用一些實例介紹SQL SERVER中指定AUTO的XML查詢。 基礎(chǔ)示例 片斷1: with TestXml as ( select 1 as id,N'LeeWhoeeUniversity' as name union all

SQL SERVER中XML查詢:FOR XML指定AUTO 前言

在SQL SERVER中,XML查詢可以指定RAW,AUTO,EXPLICIT,PATH。本文用一些實例介紹SQL SERVER中指定AUTO的XML查詢。

基礎(chǔ)示例

片斷1:

with TestXml
as
(
select 1 as id,N'LeeWhoeeUniversity' as name
union all
select 2,N'DePaul'
union all
select 3 ,null
)
select id,name from testxml for xml auto

結(jié)果:



用表名做元素名稱,,即替代RAW模式中的“row”。

下面看多表的查詢(片斷2):

with [order]
as
(
select 122 as orderid, 1 as productid,10 as quantity
union all
select 123,1 as productid,100 as quantity
union all
select 124,2,20
union all
select 125,3 ,5
),
product
as
(
select 1 as id,N'LeeWhoeeUniversity' as name
union all
select 2,N'DePaul'
)
select * from product,[order] where [order].productid=product.id for xmlauto

結(jié)果:







表名順序敏感

(見上面查詢中粗體部分)

如果把product和order換一下位置,片斷3:

with [order]
as
(
select 122 as orderid, 1 as productid,10 as quantity
union all
select 123,1 as productid,100 as quantity
union all
select 124,2,20
union all
select 125,3 ,5
),
product
as
(
select 1 as id,N'LeeWhoeeUniversity' as name
union all
select 2,N'DePaul'
)
select * from [order],product where [order].productid=product.id for xml auto

結(jié)果:









當然,AUTO模式同樣也可以指定ELEMENTS,BINARY BASE,同RAW。(SQL SERVER中XML查詢:FOR XML指定RAW)

返回的 XML 成形過程中的 AUTO 模式試探方法

AUTO 模式根據(jù)查詢決定返回的 XML 的形式。 在決定嵌套元素的方式時,AUTO 模式試探方法會比較相鄰行中的列值。ntext、text、image 和xml 類型以外的所有類型的列都會進行比較。(n)varchar(max) 和varbinary(max) 類型的列也會進行比較。

上面的第一個指定AUTO的SQL語句(片斷2)結(jié)果集為:

id name orderid productid quantity
1 LeeWhoeeUniversity 122 1 10
1 LeeWhoeeUniversity 123 1 100
2 DePaul 124 2 20

AUTO 模式試探方法將比較表 product 的所有值(Id 列和 Name 列)。因為前兩行的 Id 列和 Name 列具有相同的值,所以向結(jié)果中添加了一個具有兩個 子元素的 元素。







text類型的特殊

如果把Name 列改為 text 類型。 AUTO 模式試探方法不比較此類型的值, 而是認為這些值不相同。

見下面代碼片斷4:
declare @order table(orderid int,productid int,quantity int)
declare @product table(id int,name text)
insert into @order
select 122 as orderid, 1 as productid,10 as quantity
union all
select 123,1 as productid,100 as quantity
union all
select 124,2,20
union all
select 125,3 ,5
insert into @product
select 1 ,N'LeeWhoeeUniversity'
union all
select 2,N'DePaul'
select * from @product as product,@order as [order] where [order].productid=product.id for xmlauto

結(jié)果:









上面結(jié)果中name同為LeeWhoeeUniversity的項被分成兩個product。

結(jié)果集排序?qū)UTO試探的影響

再看第一個指定AUTO的SQL語句,但是更改了orderid為使其結(jié)果集中相同id和name的項不連在一起:

Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號-2

違法及侵權(quán)請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市萬商天勤律師事務(wù)所王興未律師提供法律服務(wù)