欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

解讀SQLServer2005 XML在T-SQL中的應用_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:解析Asp.net編程中的數(shù)組基礎實例學習
Asp.net數(shù)組(Array)可以視為儲存多個數(shù)據(jù)類型相同的值的變量,以同一個變量名稱,不同的索引值來區(qū)分表示多個值。多用來存放性質(zhì)或類型相同的數(shù)據(jù)。 1.數(shù)組的聲明 數(shù)組的聲明有以

以下為引用的內(nèi)容:

*
SQLServer2005 XML在T-SQL查詢中的典型應用

整理:fcuandy
時間:2008.11.7

前言:
此文只講xml數(shù)據(jù)類型及相應的一些操作方法在解決日常T-SQL編程中的一些應用,而避開xml modify,
xml schema,xml索引,命名空間等這些語法性或者生硬的一些問題(這些語法您可以查聯(lián)機叢書),即此文主要
講以xml的一些操作特性及xquery去解決編程問題.

Tags:
xquery ,FLWOR迭帶 ,sql:column ,sql:variable ,nodes ,value ,query ,xpath ,xquery function, if, 聚合函數(shù), xs:function等

典型應用舉例:
*/


--(1)
--====================================================================
--拆分
DECLARE @s VARCHAR(100)
SET @s='a,b,c,dd,ee,f,aa,a,aa,f'

--常規(guī)做法(sql2000常用),以一split函數(shù)拆分串為表類型結構,如
--SELECT * FROM dbo.split(@s,',') a
--當然,也可能是循環(huán)去拆分,或者以一輸助表的identity列利用charindex等函數(shù)拿identity列值與','的位置匹配實現(xiàn)拆分
--這些做法,roy_88及本人以前都整理過,不再累贅,可見推薦貼。即便 是xml法,也貼過多次,下面一筆帶過

--XML做法:
SELECT b.v FROM
(SELECT CAST('<r>' REPLACE(@s,',','</r><r>') '</r>' AS XML) x) a --將字串","換換為"</r><r>"并前后拼上<r>,</r>以用來構造xml串
CROSS APPLY
(SELECT v=t.x.value('.','VARCHAR(10)') FROM a.x.nodes('//r') AS t(x) ) b --使用 xml.nodes函數(shù)將xml串拆分為行
/*
a
b
c
dd
ee
f
aa
a
aa
f
*/


--(2)
--====================================================================
--去重,@s中出現(xiàn)的元素,重復的只要一個,希望結果為 'a,b,c,dd,ee,f'
--常規(guī)做法,循環(huán)或函數(shù),或臨時表拆后distinct
--XML做法:
--a.在(1)的基礎上進行

;WITH fc AS --定義cte命名,將@s轉換為一個表結構
(
SELECT DISTINCT b.v v
FROM
(SELECT CAST('<r>' REPLACE(@s,',','</r><r>') '</r>' AS XML) x) a
CROSS APPLY
(SELECT v=t.x.value('.','VARCHAR(10)') FROM a.x.nodes('//r') AS t(x) ) b
)
--對這個表利用xml方法進行行值拼接
SELECT STUFF(b.v.value('/r[1]','varchar(100)'),1,1,'')
FROM
(SELECT v=(SELECT ',' v FROM fc FOR XML PATH(''),ROOT('r'),TYPE)) b
/*
a,aa,b,c,dd,ee,f
*/

--b FLWOR語句 T-SQL組合:
SELECT STUFF(v,1,1,'') FROM
(SELECT CAST('<r>' REPLACE(@s,',','</r><r>') '</r>' AS XML) x) a
CROSS APPLY
(SELECT x=(SELECT t.x.value('.','varchar(10)') v,idx=ROW_NUMBER() OVER(ORDER BY GETDATE()) FROM a.x.nodes('//r') AS t(x) FOR XML PATH('r'),TYPE)) b --利用row_number得到唯一idx
CROSS APPLY
(SELECT v=CAST(b.x.query('for $r in //r where count(//r[v=$r/v and idx<$r/idx])=0 return concat(",",xs:string($r/v[1]))') AS VARCHAR(MAX))) c --類似count計數(shù)法,取得v相同的節(jié)點集idx值最小的節(jié)點,原型為:
--SELECT * FROM tb a WHERE 1>(SELECT COUNT(*) FROM tb WHERE v=a.v AND id<a.id)
/*
a ,b ,c ,dd ,ee ,aa ,f
*/


--c distinct-values
SELECT REPLACE(v,' ',',') FROM
(SELECT CAST('<r>' REPLACE(@s,',','</r><r>') '</r>' AS XML) x) a
CROSS APPLY
(SELECT CAST(a.x.query('distinct-values(//r)') AS VARCHAR(MAX)) v) b --直接調(diào)用distinct-values函數(shù)來操作
/*
a,b,c,dd,ee,f,aa
*/


-- 導入去重, last() , position()

DECLARE @doc xml
SET @doc ='<?xml version="1.0" encoding="gb2312" ?>
<employees>
<employee>
<empid>e0001</empid>
<name>蕭峰</name>
</employee>
<employee>
<empid>e0002</empid>
<name>段譽</name>
</employee>
<employee>
<empid>e0003</empid>
<name>王語嫣</name>
</employee>
<employee>
<empid>e0003</empid>
<name>張無忌</name>
</employee>
</employees>
'
create table people2
(
personid varchar(10) primary key ,
name varchar(20)
)

INSERT people2
SELECT DISTINCT b.* FROM
(SELECT x = @doc.query('for $e in //employee return //employee[empid = $e/empid][last()]')) a --FLWOR時,用當前節(jié)點去//emploee節(jié)點集中找節(jié)點集中empid等于當前節(jié)點的empid, 在找到的集合中取最后一個利用last()函數(shù)
CROSS APPLY
(SELECT id=t.x.value('empid[1]','varchar(100)'),name=t.x.value('name[1]','varchar(100)') FROM a.x.nodes('//employee') AS t(x)) b

SELECT * FROM people2
/*
e0001 蕭峰
e0002 段譽
e0003 張無忌
*/
GO
drop table people2
GO
--同組一選多,也可應用此方法,不過沒有必要,就不再累贅了。


--(3)
--====================================================================
--列名,列值相關
--a,按行聚合
declare @t table(Sname nvarchar(5), V1 float, V2 float, V3 float, V4 float, V5 float, V6 float)
insert @t select N'張三', 0.11 , 0.21 , 0.29, 0.32 , 0.11, 0.08
insert @t select N'李四', 0.01 , 0.61 , 0.21, 0.73 , 0.21, 0.12
insert @t select N'張五', 0.31 , 0.21 , 0.23, 0.33 , 0.91, 0.65
insert @t select N'張六', 0.59 , 0.11, 0.26, 0.13, 0.01, 0.15

select b.* from
(select x=cast((select * from @t for xml path('r')) as xml)) a
cross apply
(
select name=x.query('./Sname/text()'),v=x.query('max(./*[local-name(.)!="Sname"])') from a.x.nodes('//r') as t(x)
--r為二級節(jié)點(因為文檔本身無根節(jié)點,即為每項的頂級節(jié)點)即為一個r節(jié)點表示一條記錄. r下級節(jié)點,每個表示一個列,因為列名未知,所以用/*匹配所有節(jié)點,因為name為區(qū)別列,不參與聚合運算,故用local-name取得來過濾
) b

/*
張三 0.32
李四 0.73
張五 0.91
張六 0.59
*/

--b ,由值引到取列
if not object_id('T1') is null
drop table T1
GO
Create table T1([tId] int,[tName] nvarchar(4))
Insert T1
select 1,N'zhao' union all
select 2,N'qian' union all
select 3,N'sun'
Go
--> --> 借且(Roy)生成測試數(shù)據(jù)

if not object_id('T2') is null
drop table T2
Go
Create table T2([tId] int,[zhao] nvarchar(1),[qian] nvarchar(1),[sun] nvarchar(1))
Insert T2
select 1,N'a',N'b',N'c' union all
select 2,N'd',N'e',N'f' union all
select 3,N'g',N'h',N'i'
Go


SELECT c.tid,c.tName,v FROM t1 c
CROSS APPLY
(SELECT x=(SELECT * FROM t2 WHERE tid=c.tid FOR XML PATH('r'),TYPE)) a
CROSS APPLY
(SELECT v=t.x.query('./*[local-name(.)=xs:string(sql:column("c.tName")) ]/text()')
FROM a.x.nodes('//r') AS t(x)
) b

/*
1 zhao a
2 qian e
3 sun i
*/


--c, 列名,列值,與系統(tǒng)表

CREATE TABLE tb(f1 INT,f2 INT,x INT,z INT,d INT,ex INT,dd INT,vv INT)
INSERT tb SELECT 1,2,3,5,11,3,2423,33
GO
SELECT * FROM tb
GO
SELECT name,v FROM
( SELECT name FROM sys.columns WHERE object_id=object_id('tb','u') ) a
CROSS JOIN
(SELECT x=(SELECT * FROM tb FOR XML PATH('r'),TYPE)) b
CROSS APPLY
(SELECT v=t.x.query('./*[local-name(.)=xs:string(sql:column("a.name")) ]/text()') FROM b.x.nodes('//r') AS t(x) ) c
/*
f1 1
f2 2
x 3
z 5
d 11
ex 3
dd 2423
vv 33
*/
GO
DROP TABLE tb
GO

--(4)
--一些綜合計算
--以下表 ta.a值 yyyymmdd-yyyymmdd表連續(xù)時間段,","表單個日期
If object_id('ta','u') is not null
Drop table ta
Go
Create table ta(a varchar(100))
Go
Insert into ta
select '1 | |20080101-20080911'
union all
select '2 | |20080101,20080201,20080301,20080515,20080808'
union all
select '3 | |20080101,20080201,20080301,20080515,20081108'
Go

declare @s varchar(8)
select @s= convert(varchar(8),getdate(),112)

select stuff(replace(replace(cast(x as varchar(1000)),'</item><item>',case when type='1' then '-' else ',' end),'</item>',''),1,6,type ' | |') a
from
(
select left(a,1) type,
cast(
'<item>'

replace(
stuff(a,1,5,''),
case when left(a,1)=1 then '-' else ',' end,
'</item><item>'
)

'</item>'
AS XML
) x
from ta
) base

where x.value('
if (sql:column("base.type")="1") then
if(
(/item/text())[1]<sql:variable("@s")
and
(/item/text())[2]>sql:variable("@s")
)
then 1
else 0
else
count(//item[text()>sql:variable("@s")])
'
,
'int'
)>0
go

分享:談SQL Server 2005最后升級:SP3年底發(fā)布
雖然SQL Server 2008已經(jīng)發(fā)布了一段時間,但微軟并沒有忘記活了三年多的SQL Server 2005,最后一個升級服務包SP3也將在今年底如期推出。 SQL Server持續(xù)性服務首席項目經(jīng)理Nosheen

來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2009-09-17
相關Mssql數(shù)據(jù)庫教程
成年人在线观看av| 亚洲女与黑人做爰| 欧美一级黄色录像| 国产精品久久久久久亚洲调教| 手机在线免费观看毛片| 久久久999久久久| 久久99国产精品视频| 91影院在线观看| 这里精品视频免费| 欧美日韩午夜爽爽| 国产在线视频二区| 欧美精美视频| 国产日韩欧美不卡在线| 中文字幕综合一区| 免费在线黄网站| 九九九在线观看| 精品国产一区二区三区久久久樱花 | 色婷婷av一区二区三区软件| 成人久久一区二区| 六十路息与子猛烈交尾| 97色婷婷成人综合在线观看| 国产成人免费视频网站| 欧美精品一区男女天堂| 国产精品久久久久久久久久直播| 久操视频免费看| 日韩三区四区| 久久久久亚洲蜜桃| 欧美精品videosex牲欧美| 少妇激情一区二区三区| 高潮一区二区三区乱码| 亚洲影音先锋| 欧美一卡在线观看| 日本亚洲欧洲精品| 国产aaaaaaaaa| 成人av综合网| 国产亚洲成av人在线观看导航| 九九热这里只有在线精品视| 一区二区三区国产免费| 亚洲AV无码精品色毛片浪潮| 激情五月激情综合网| 亚洲美女性视频| 精品成在人线av无码免费看| 这里只有精品国产| 巨乳诱惑日韩免费av| 亚洲福利在线看| 中文字幕一区二区三区四区五区| 免费看污视频的网站| 亚洲精选久久| 欧美一区二区黄| 一区二区三区久久网| www.av88| 国产日韩欧美一区| 精品免费日韩av| 中国女人做爰视频| 国产又黄又猛又爽| 麻豆精品视频在线| 国产亚洲一区精品| 人妻熟女一二三区夜夜爱| 人妻与黑人一区二区三区| 国产精品亚洲成人| 欧美成人三级视频网站| 亚洲一区二区图片| 亚洲精品a区| 亚洲欧美视频一区| 91传媒视频免费| 中文字幕av免费在线观看| 欧美69wwwcom| 日韩女同互慰一区二区| 久久av喷吹av高潮av| 国产成人精品毛片| 顶级嫩模精品视频在线看| 欧美激情综合色| 成年人的黄色片| 伊人久久综合影院| 在线亚洲一区二区| 一本一本a久久| 在线免费看91| 国产乱人伦偷精品视频免下载| 中文字幕日韩精品在线观看| 在线观看免费不卡av| 精品三级国产| 午夜久久福利影院| 欧美福利精品| 欧美三级网站在线观看| 国产乱淫av一区二区三区 | jk漫画禁漫成人入口| 久久精品人人做人人综合| 日本道色综合久久影院| 美国黄色特级片| 一区二区电影| 日韩成人在线网站| 我要看一级黄色大片| 看片一区二区| 一区二区三区在线视频免费| 鲁鲁视频www一区二区| 中文天堂在线资源| 国产成人亚洲精品狼色在线| 97超碰色婷婷| 亚洲区一区二区三| 中文精品视频| 中文字幕九色91在线| 中文字幕av一区二区三区人妻少妇 | 国产肉丝袜一区二区| 国产精品露脸自拍| 久久在线视频精品| 蜜臀91精品一区二区三区| 久久国产精品免费视频| 中国极品少妇videossexhd| 国产欧美日韩影院| 日韩欧美的一区二区| 情侣黄网站免费看| 最新国产一区二区| 色香蕉久久蜜桃| 国产又粗又硬又长| 国产高清不卡| 亚洲综合丁香婷婷六月香| 欧美一区二区在线视频观看| 国产黄色一级大片| 久久一区二区三区四区| caoporn国产精品免费公开| 日本高清www免费视频| 国产麻豆精品视频| 国产成人精品网站| 日产亚洲一区二区三区| 美女视频网站久久| 日本精品免费观看| 国语对白一区二区| 国产呦精品一区二区三区网站| 久久免费视频在线观看| 多男操一女视频| 久久福利毛片| 久久久久久久网站| 亚洲成人生活片| 蜜臀a∨国产成人精品| 5566日本婷婷色中文字幕97| 国产a免费视频| 日韩国产一区二| 久久精品人人爽| 丰满少妇高潮一区二区| 亚洲经典视频在线观看| 欧美理论片在线观看| 中文字幕av网址| 亚洲少妇诱惑| 久久久在线免费观看| 少妇影院在线观看| 国产裸体歌舞团一区二区| 国产色综合天天综合网| 亚洲欧美精品一区二区三区| 成人一区二区视频| 成人欧美一区二区三区视频| 成人黄色三级视频| 国产日韩精品一区二区浪潮av| 国产精品一区二区三区四区五区| 91精品人妻一区二区三区果冻| 国产色婷婷亚洲99精品小说| 精品在线视频一区二区三区| 天天操天天干天天| 大桥未久av一区二区三区| 福利在线一区二区| 亚洲综合色婷婷在线观看| 欧美成人精品高清在线播放 | 中国女人特级毛片| 激情91久久| 国内精品免费午夜毛片| 亚洲激情视频一区| 91视频在线观看免费| 美女主播视频一区| 91成人在线| 欧美日韩久久一区二区| 欧美日本视频在线观看| 日韩在线你懂的| 亚洲欧美日韩中文视频| 成年人在线免费看片| 日本不卡一区二区| 国产精品久久久久久久久久东京| 中文字幕在线观看视频一区| 中文字幕永久在线不卡| 中文字幕中文字幕在线中一区高清| 成人国产精品一区二区免费麻豆| 欧美色图天堂网| 欧美日韩一区二区在线免费观看 | 91九色蝌蚪嫩草| 国产色综合视频| 婷婷综合另类小说色区| 午夜免费福利小电影| 国内精品久久久久久久影视简单| 综合国产在线观看| 久久久久亚洲av片无码| 99久精品国产| 亚洲国产婷婷香蕉久久久久久99| 国产高清日韩| 亚洲精品美女免费| 受虐m奴xxx在线观看| 精品亚洲国内自在自线福利| 成人18视频| 成人性生活av| 在线播放视频一区| 艳妇乳肉豪妇荡乳xxx| 日本91福利区| 国产一区二区不卡视频| 亚洲电影有码| 日韩精品一区二区三区在线| 欧美夫妇交换xxx| 精品一区二区三区视频在线观看| 国产精品一区二区免费| 国产精品久久久久久妇女| 精品国产91九色蝌蚪| 91麻豆精品国产91久久综合| 国产精品66部| 四虎永久在线精品免费一区二区| 午夜视频在线观看精品中文 | 男人天堂成人在线| 欧美区亚洲区| 国产精品电影一区| av一级黄色片| 欧美午夜一区二区| 捆绑凌虐一区二区三区| 国产在线乱码一区二区三区| 玛丽玛丽电影原版免费观看1977 | 成人精品一区二区三区电影免费 | 久久视频在线直播| 欧美videossex极品| 中文字幕制服丝袜一区二区三区| 中文字幕无码精品亚洲资源网久久| 成人aaaa| 日韩av成人在线| 日本高清视频免费看| 欧美精品欧美精品系列| 双性尿奴穿贞c带憋尿| 国产**成人网毛片九色| 午夜久久资源| 九色精品国产蝌蚪| 91av在线国产| 手机看片1024国产| 精品国产一区久久| jizz亚洲少妇| 国产精品电影一区二区| 日日噜噜夜夜狠狠| 日韩av电影一区| 春色成人在线视频| 高清一区二区| 精品久久国产精品| 国产美女www爽爽爽| 色偷偷久久一区二区三区| 自拍视频一区二区| 国产乱码一区二区三区| 青少年xxxxx性开放hg| 天美av一区二区三区久久| 久久在线观看视频| 国产一级在线免费观看| 1024成人网色www| 欧美美女一级片| 久久综合影视| 日本在线高清视频一区| 97se亚洲| 欧美刺激性大交免费视频| 国产精品视频a| 欧美一区二区视频免费观看| 神马久久精品综合| 亚洲欧美另类小说视频| 国产在线观看中文字幕| 国产精品白丝av| 97超碰人人澡| 亚洲高清久久| 欧美资源一区| 午夜欧洲一区| 国模视频一区二区| 午夜日韩成人影院| 色综久久综合桃花网| 国产一区二区小视频| 欧美日韩精品高清| 青青青在线视频| 亚洲综合色丁香婷婷六月图片| 国产精品日日摸夜夜爽| 99免费精品在线观看| 精品国产一二三四区| 国产欧美日本| 五月天久久综合网| 欧美日一区二区在线观看| 99一区二区三区| 亚洲精品小区久久久久久| 国产ts人妖一区二区| 99热这里只有精品8| 日本一区精品| 欧美电影免费观看高清| 91精品久久久久久综合乱菊| 久久久久久亚洲精品美女| 日韩在线视频免费观看高清中文| 夜夜嗨aⅴ一区二区三区| 欧美日韩免费一区二区三区 | 日本免费在线观看视频| 欧美精品自拍偷拍动漫精品| 草视频在线观看| 狠狠色狠狠色综合日日五| 貂蝉被到爽流白浆在线观看| 一区二区三区四区精品在线视频 | 亚洲国产中文字幕在线观看 | 精品国产污污免费网站入口| 男人天堂av在线播放| 91麻豆精品国产91久久久 | 久久人91精品久久久久久不卡| 成人片免费看| 欧美激情在线有限公司| 国产精品99| 欧美最猛性xxxxx免费| 男人亚洲天堂| 精品中文字幕在线观看| 韩日精品一区| 97精品视频在线观看| 伊人久久大香| 国产精品69久久| 国产精品xnxxcom| 91超碰caoporn97人人| 日韩欧美一级| 国产精品电影观看| 欧美黄色网视频| 444亚洲人体| 久久美女精品| 欧洲精品久久| 一区二区黄色| 最新不卡av| 蜜臀av国产精品久久久久| 亚洲 高清 成人 动漫| 国产在线观看免费一区| 美女一区二区三区视频| 91老司机福利 在线| 能看毛片的网站| 亚洲欧洲av另类| 你懂得视频在线观看| 91国内精品野花午夜精品| 色网站在线播放| 欧美一区二区在线视频| 中文字幕人妻一区二区在线视频 | 粗大的内捧猛烈进出视频| 中文字幕中文在线不卡住| 国产jk精品白丝av在线观看| 欧美视频13p| 日韩手机在线观看| 精品久久久久久久久久久久久久久久久| 欧美日韩 一区二区三区| 亚洲欧美www| 美女福利一区二区| 久久久亚洲福利精品午夜| 国产成人精品亚洲线观看| 成人影片在线播放| 亚洲特色特黄| 久久综合久久网| av影院午夜一区| 182在线视频| 一区二区三区**美女毛片| 中文字幕求饶的少妇| 欧美日韩精品系列| 波多野结衣视频在线观看| 这里只有精品久久| 中文日产幕无线码一区二区| 4438全国亚洲精品在线观看视频| 成人动态视频| 精品婷婷色一区二区三区蜜桃| 亚洲影院一区| 爱情岛论坛成人| 中文字幕日韩精品一区 | 亚洲欧美综合久久久| 一本色道久久88亚洲精品综合| 国产久卡久卡久卡久卡视频精品| 国产又粗又猛大又黄又爽| 亚洲一区二区不卡免费| 日韩欧美一区二区一幕| 亚洲视频网站在线观看| 另类一区二区三区| 91成人理论电影| 国产日韩1区| 最新中文字幕2018| 一区二区三区在线视频免费| 中文在线观看免费网站| 亚洲免费电影一区| 日韩不卡在线| 国产精品久久婷婷六月丁香| 精品一区二区三区的国产在线观看| 性欧美精品一区二区三区在线播放| 免费观看成人av| 亚洲综合在线一区二区| 久久你懂得1024| 亚洲精品午夜视频| 91精品久久久久久蜜臀| www.色呦呦| 亚洲成av人影院| 国产精品专区在线| 久久综合av免费| 国产sm调教视频| 日韩一区二区三区免费观看| 欧美视频在线观看一区二区三区| 久久久亚洲网站| 色乱码一区二区三区网站| 国产xxxx振车| 国产清纯在线一区二区www| 视频国产一区二区| 亚洲精品一区二区三区影院| 自拍偷拍亚洲视频| 91免费欧美精品| 香蕉久久a毛片|