一起草最新网址_日韩一区二区麻豆国产_91视频婷婷_日本一区二区视频在线_日韩激情一区二区三区_国产另类第一区_成人免费在线播放视频_亚洲永久精品ww.7491进入_久久这里有精品视频_久久精品一级片_日韩av在线网页_波多野结衣不卡视频

解讀SQLServer2005 XML在T-SQL中的應用_Mssql數據庫教程

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

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

以下為引用的內容:

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

整理:fcuandy
時間:2008.11.7

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

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

典型應用舉例:
*/


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

--常規做法(sql2000常用),以一split函數拆分串為表類型結構,如
--SELECT * FROM dbo.split(@s,',') a
--當然,也可能是循環去拆分,或者以一輸助表的identity列利用charindex等函數拿identity列值與','的位置匹配實現拆分
--這些做法,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函數將xml串拆分為行
/*
a
b
c
dd
ee
f
aa
a
aa
f
*/


--(2)
--====================================================================
--去重,@s中出現的元素,重復的只要一個,希望結果為 'a,b,c,dd,ee,f'
--常規做法,循環或函數,或臨時表拆后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計數法,取得v相同的節點集idx值最小的節點,原型為:
--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 --直接調用distinct-values函數來操作
/*
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時,用當前節點去//emploee節點集中找節點集中empid等于當前節點的empid, 在找到的集合中取最后一個利用last()函數
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為二級節點(因為文檔本身無根節點,即為每項的頂級節點)即為一個r節點表示一條記錄. r下級節點,每個表示一個列,因為列名未知,所以用/*匹配所有節點,因為name為區別列,不參與聚合運算,故用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)生成測試數據

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, 列名,列值,與系統表

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表連續時間段,","表單個日期
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年底發布
雖然SQL Server 2008已經發布了一段時間,但微軟并沒有忘記活了三年多的SQL Server 2005,最后一個升級服務包SP3也將在今年底如期推出。 SQL Server持續性服務首席項目經理Nosheen

來源:模板無憂//所屬分類:Mssql數據庫教程/更新時間:2009-09-17
相關Mssql數據庫教程
欧美在线一区二区| 91精品久久久久久久久久入口| 精品久久久久久久中文字幕| 国产成人综合在线| 亚洲高清视频免费| 欧美精品久久久久久久久老牛影院| 国产不卡av在线播放| 日本中文字幕影院| 欧美久久一二三四区| 亚洲天堂日韩av| 久久日免费视频| 18禁裸男晨勃露j毛免费观看| 日韩精品中文字幕在线播放| 粉嫩一区二区三区在线看| 精品国产一区二区三区免费| 欧美一区二区精品| 久久蜜桃一区二区| 看片的网站亚洲| 91丨porny丨在线中文| 国产熟妇久久777777| 日本一区视频在线播放| 欧美一级一级性生活免费录像| 在线观看国产小视频| 波多野结衣免费观看| 尤物99国产成人精品视频 | 成人高清av在线| 国产主播自拍av| 成人两性免费视频| 中文字幕不卡av| 91蜜桃网址入口| 中文字幕免费观看视频| 亚洲 欧美 变态 另类 综合| 日本三级视频在线| 国产又黄又粗又爽| 影音先锋男人资源在线观看| av日韩免费电影| 亚洲欧美经典视频| 国产欧美久久久| 88av在线播放| 久久五月天综合| 国产嫩草影院久久久久| 日本熟女一区二区| 欧美人与性动交α欧美精品| 亚洲精品久久久久久一区二区| 一区二区成人精品| 色美美综合视频| 久久精品久久综合| 亚洲av无码乱码国产精品久久| 日本毛片在线免费观看| 色婷婷久久一区二区三区麻豆| 国产无码精品视频| 极品尤物一区二区三区| 亚洲在线免费视频| 国内精品久久影院| 3d成人动漫网站| 亚洲免费av高清| 一区二区三区免费网站| 欧美日韩国产在线播放网站| 久久资源免费视频| 91精品欧美福利在线观看| 欧美色图在线视频| 一级特黄大欧美久久久| 国产欧美视频在线观看| 国产精品一区二区你懂的| 偷拍精品一区二区三区| 久久精品www人人爽人人| 国产精品va在线播放| 亚洲免费视频中文字幕| 国产 日韩 欧美 精品| 久久久久中文字幕2018| 一区二区三区在线观看动漫| 一级女性全黄久久生活片免费| 人与动物性xxxx| 91高清国产视频| 亚洲 中文字幕 日韩 无码| 免费在线观看亚洲视频| 久久久无码中文字幕久...| 久久99久久久久久久噜噜| 欧美亚州韩日在线看免费版国语版| 亚洲欧美另类小说| 国产suv精品一区二区883| 成人在线看视频| 欧美一区二区三区四区在线| 日韩欧美国产成人| 韩国三级中文字幕hd久久精品| 国产成人在线网站| 成人国产精品视频| 蜜臀av性久久久久蜜臀aⅴ| 污视频在线免费| 国产一区二区精品久久91| 日韩精品一区国产麻豆| 久久久久九九九九| 久久草.com| 欧美成人福利在线观看| 97人人模人人爽人人澡| 日韩国产在线一区| 国产成人免费视频一区| 精品国产乱码一区二区三| 影音先锋黄色网址| 午夜黄色福利视频| 天天爱天天做天天爽| 日韩精品在线观看av| 性色av一区二区三区红粉影视| 欧美在线观看一区| 9色porny自拍视频一区二区| 久久综合一区二区| 亚洲一区二区三区四区的| 久久嫩草精品久久久精品一| 国产黄频在线观看| 熟妇高潮一区二区三区| 亚洲午夜精品在线| 国产精品自在线| 日韩黄色片视频| av大片在线免费观看| 国产成人精品1024| 中文字幕一区三区| 亚洲黄色录像片| 91久久精品日日躁夜夜躁欧美| 在线电影一区二区三区| 日韩第一页在线| 天天操天天综合网| 欧美在线不卡视频| 国产精品最新在线观看| 三级a三级三级三级a十八发禁止| 97伦伦午夜电影理伦片| 破处女黄色一级片| 欧美日韩人妻精品一区二区三区| 亚洲精品乱码久久久久久久| 免费又黄又爽又猛大片午夜| 日本网站在线观看一区二区三区| 欧美日韩国产综合一区二区| 国产精品久久久久久久久久久久冷| 手机av在线网站| 国产成人三级一区二区在线观看一| 国产精品99久久久久久有的能看| 国产精品欧美久久久久无广告| 亚洲视频狠狠干| 欧美群妇大交群的观看方式| 欧美最顶级丰满的aⅴ艳星| 久久人人97超碰精品888| 中文字幕av一区中文字幕天堂 | 青青青在线播放| 国产清纯白嫩初高中在线观看性色| 91原创国产| 国产三级国产精品国产专区50| 香蕉视频黄色在线观看| 中文字幕第一页久久| 999国产在线| www.黄色com| 久久亚洲综合色| 久久网福利资源网站| 亚洲乱码一区二区三区| 成人精品视频在线播放| 亚洲高潮女人毛茸茸| 国产黄色美女视频| 91亚洲精品久久久蜜桃| 久久久久久97三级| 欧美一区三区四区| 国产在线精品二区| 精品美女久久久久| 国产日本一区二区| 欧美日韩国产在线观看| 97视频免费观看| 成人欧美一区二区三区黑人孕妇 | 97国产在线观看| 91香蕉一区二区三区在线观看| 尤物在线观看一区| 91影院在线免费观看视频| 一区二区成人网| www.xxxx日本| 免费高清视频精品| 成人av网在线| 亚洲精品日韩专区silk| 日韩午夜三级在线| 97视频人免费观看| 欧美极品少妇无套实战| 一起操在线视频| 无码精品人妻一区二区| 午夜精彩视频在线观看不卡| 欧美亚洲视频一区二区| 国产91精品一区二区绿帽| 欧美不卡在线播放| 中文字幕五月天| 日韩欧美一级二级| 亚洲精品成人a8198a| 中文字幕资源站| 99这里只有久久精品视频| 亚洲综合色婷婷| 精品sm在线观看| 国产成人生活片| 国产一区免费看| www.99久久热国产日韩欧美.com| 男人操女人动态图| 欧美精品一区二区三区蜜臀 | 亚洲 国产 日韩 综合一区| 久热精品在线观看| 国产精品高潮呻吟久久| 在线视频欧美日韩| 蜜臀av色欲a片无码精品一区| 国产福利第一视频| 亚洲国产精品网站| 国产精品天天狠天天看| 校园春色 亚洲色图| 美女视频网站久久| 亚洲xxxx视频| 亚洲天堂一级片| av首页在线观看| 欧美精品一区二区蜜臀亚洲| 人妻熟妇乱又伦精品视频| 国产吃瓜黑料一区二区| 久久精品在线观看| 国产91免费观看| 国产欧美日韩成人| 国产精品久久久久久av福利| 亚洲av无码国产精品久久不卡| 成人免费看吃奶视频网站| 国产丝袜在线视频| 青青精品视频播放| 欧美日韩精品一区二区三区视频播放| 精品久久久视频| 欧美日韩在线不卡| www.日本在线播放| 国产成人亚洲精品青草天美| 欧美另类在线播放| 欧美少妇在线观看| 性高潮视频在线观看| 三级精品视频久久久久| 精品成人免费视频| 黑人巨大精品欧美一区免费视频| 亚洲美女搞黄| 日本最新不卡在线| 日韩av在线免费观看| 精品蜜桃传媒| 日韩和欧美一区二区| 欧美精品午夜视频| 免费在线观看a级片| 在线不卡欧美精品一区二区三区| 97公开免费视频| 色天使久久综合网天天| 蜜桃av免费观看| 在线看国产一区二区| 国产精品免费在线播放| 91精品人妻一区二区三区蜜桃2| 日韩性xxxx| 日韩欧美一级片| 我要看一级黄色大片| 国产精品福利一区二区三区| 久久久久久久有限公司| 免费在线欧美视频| 天堂а√在线中文在线| 欧美性黄网官网| 日韩免费一二三区| 欧美亚洲另类制服自拍| 免费在线观看一区二区三区| 国产麻豆一区二区三区在线观看| 国产又黄又大又粗的视频| 中文字幕精品一区二区精品| 992tv成人免费观看| 一级特黄色大片| 精品久久久国产| 欧美三级午夜理伦三级| 久久久久免费观看| 一区二区免费电影| 日韩和欧美的一区| 免费91麻豆精品国产自产在线观看| 成人黄色免费网址| 丝袜亚洲另类欧美重口| 97超碰中文字幕| 国产午夜精品视频| 日本黑人久久| 成人黄色大片在线观看| 亚洲综合中文字幕在线观看| 国产午夜精品久久久久久久久| 夜夜嗨av色综合久久久综合网| 久久国产在线观看| 成人激情视频在线播放| 国产精品视频九色porn| 毛片网站免费观看| 国产这里只有精品| 国产三级精品三级在线专区| 大尺度在线观看| 亚洲人成电影在线观看天堂色| 小嫩苞一区二区三区| 国产亚洲精品久久久久动| 久久久久久久久久网站| 中文字幕最新精品| 天干夜夜爽爽日日日日| 97香蕉超级碰碰久久免费的优势| 国产一区日韩二区欧美三区| 国产精品久久久久久搜索| 青青草成人av| 日韩av在线播放资源| 中文字幕在线观看免费高清| 91精品在线一区二区| 国产激情第一页| 欧美二区在线播放| 91丨porny丨在线中文 | 男人添女人下面高潮视频| 99久久久国产精品免费蜜臀| 亚洲精品成人自拍| 26uuu精品一区二区三区四区在线| 男人天堂手机在线视频| 亚洲国产美国国产综合一区二区| 日韩免费精品视频| 亚洲免费激情视频| 欧美在线日韩在线| 日韩在线观看视频网站| 黄色一级视频片| 美日韩精品视频免费看| 国产一区二区三区久久久 | 九色porny91| 另类小说欧美激情| 国产免费观看高清视频| 日韩精品自拍偷拍| 国产精品 欧美激情| 91精品国产高清久久久久久久久| 国产精品午夜视频| 亚洲资源在线网| 美女日批在线观看| 日韩aaaaaa| 麻豆精品一区二区av白丝在线| 国产精品久久久久久久久图文区| 7799精品视频| 亚洲2020天天堂在线观看| 蜜桃成人在线| 国产高清999| 日韩精品手机在线| 激情欧美日韩一区二区| 亚洲高清中文字幕| 在线观看国产精品淫| av成人午夜| 999精品网站| 欧美精品入口蜜桃| 免费国产亚洲视频| 亚洲观看高清完整版在线观看| 在线精品国产欧美| 精品国产日本| 91网址在线观看精品| 国产精品久久久久久久久久久久久久久久久 | 日韩免费不卡视频| 精品在线播放免费| 色婷婷香蕉在线一区二区| 精品国产网站地址| 欧洲精品码一区二区三区免费看| 日本r级电影在线观看| 亚洲午夜无码久久久久| 91免费观看国产| 日韩女优av电影| 亚洲欧美日韩一区二区| 国产中年熟女高潮大集合| 久久人人爽亚洲精品天堂| 国产一本一道久久香蕉| 色婷婷综合网站| 亚洲国产欧美一区二区三区同亚洲 | 日本五十路女优| 亚洲av永久无码国产精品久久| 青青影院一区二区三区四区| 欧美精品久久96人妻无码| 少妇人妻好深好紧精品无码| 少妇人妻偷人精品一区二区| 亚洲黄色性网站| 久久不射热爱视频精品| 黄色www在线观看| 久草福利资源在线| 久久99精品久久久久久久久久久久 | 黄色手机在线视频| 欧美国产一级片| 国产精品拍天天在线| 国产午夜一区二区| 日韩欧美三级电影| 美国美女黄色片| 精品亚洲国产成人av制服丝袜| 欧美性欧美巨大黑白大战| 国产精品久久久久久久久久| 欧美精品无码一区二区三区| 五月激情丁香网| 亚洲欧美日韩电影| 欧美大片第1页| 激情五月宗合网| 无码一区二区三区| 亚洲欧美日本韩国| 国内久久久精品| 韩国中文字幕av| 99er热精品视频| 亚洲成av人片一区二区| 欧美性一区二区三区| 日韩精品你懂的| 国产黄色片免费| 色综合天天天天做夜夜夜夜做| 国产精品久久久久久久一区探花| a级大片免费看| 亚洲欧美日韩免费| 欧美日本一区二区三区| 亚洲专区国产精品| 法国伦理少妇愉情| 国产二区国产一区在线观看| 日韩精品中文字幕在线播放| 一区二区不卡在线观看| 国产一级片免费看| 亚洲视频免费在线观看| 91av在线播放| 成年人看片网站| 久久丁香综合五月国产三级网站| 亚洲第一av在线| 警花观音坐莲激情销魂小说 | 国产成人亚洲精品无码h在线| 国产又粗又猛又色又| 精品福利视频导航| 粉嫩av一区二区三区免费观看| 亚洲天堂av中文字幕|