DB2 SQL/XMLʹÓÃ
º¯Êý£º
XMLPARSE£º½âÎö×Ö·û»òÕß´ó¶ÔÏó¶þ½øÖÆÊý¾Ý£¬²úÉúXML
XMLSERIALIZE£º½«XMLֵת»»Îª×Ö·û»òÕß´ó¶ÔÏó¶þ½øÖÆÊý¾Ý
XMLVALIDATE£º¸ù¾ÝXML schemaУÑéXMLÖµµÄÓÐЧÐÔ
XMLEXISTS£º¼ì²âXQueryÊÇ·ñ·µ»Ø½á¹û£¨ÈçÓÉÒ»¸ö»ò¶à¸öÏîËù×é³ÉµÄÐòÁУ©
XMLQUERY£ºÖ´ÐÐÒ»¸öXQuery²¢ÒÔÒ»¸öÐòÁзµ»Ø½á¹û
XMLTABLE£ºÖ´ÐÐÒ»¸öXQuery£¬ÒÔ¹ØÏµÊý¾Ý±íÐÎʽ·µ»Ø½á¹û£¨Èç¹û¿ÉÄܵϰ£©
XMLCAST£ºXMLÀàÐÍת»»
XMLEXISTS£º
SELECT name from clients
WHERE xmlexists(
'$c/Client/Address[zip="95116"]'
passing clients.contact as "c"
)
˵Ã÷£º
ÔÚWHERE×Ó¾äÖе÷ÓÃXMLEXISTSº¯Êý£¬²ÎÊýÖ¸¶¨ÁËXML·¾¶±í´ïʽ£¬DB2¾Ý´Ëµ¼º½µ½XMLÎĵµÓʱàÔªËØ²¢ÇÒ²éÕÒÖµ 95116¡£ “$c/Client/Address”Ö¸¶¨ÁËDB2ÔÚXMLÎĵµÖж¨Î»ÓʱàÔªËØµÄ·¾¶¡£ÃÀÔª·ûºÅ($)ÓÃÀ´Ö¸¶¨±äÁ¿¡£passing clients.contact as "c"¶Ô±äÁ¿c½øÐж¨Òå¡£ÕâÀ“clients”ÊDZíÃû£¬“contact”ÊÇ XMLÁеÄÁÐÃû¡£»»ÑÔÖ®£¬XMLÎĵµ´«µÝ¸øÁ˱äÁ¿c¡£ DB2¼ìË÷“contact”ÁÐÖеÄXMLÊý¾Ý£¬´Ó¸ù½Ú“client”ÏòÏ£¬Í¨¹ý½Úµã“Address”µ½½Úµã“zip”£¬¾¹ýÄ¿±êÓÊ±àÆ¥Åä¼ì²éÅжϸÿͻ§ÊÇ·ñ¾ÓסÔÚÄ¿±êµØÇø¡£
ÔÚDB2 9.5ÖнøÐÐÁ˼ò»¯£º
SELECT name from clients
WHERE xmlexists(
'$CONTACT/Client/Address[zip="95116"]'
)
XMLQuery£º
SELECT xmlquery('$c/Client/email' passing contact as "c")
from clients
WHERE status = 'Gold'
ʹÓÃXQuery FLWOR±í´ïʽÖеÄfor£º
SELECT name, xmlquery(
‘for $e in $c/Client/email[1] return $e’
passing contact as “c”
)
from clients
WHERE status = ‘Gold’
SELECT xmlquery('for $e in $c/Client/email[1]/text()
return <p>{$e}</p>'
passing contact as "c")
from clients
WHERE status = 'Gold'
XQueryµÄFLWOR±í´ïʽ FLWORÊǼ¸¸ö´ÊÊ××ÖĸµÄËõд£º
FOR£º¶ÔÐòÁнøÐеü´ú
LET£º°ó¶¨±äÁ¿
WHERE£º¶¨Òå¹ýÂËÆ÷
ORDER£º½«¹ýÂ˽á¹ûÅÅÐò
RETURN£º·µ»Ø²éѯ½á¹û
ʵÀý£º
CREATE TABLE dept(deptID CHAR(8),deptdoc XML);
½«ÈçÏÂXMLÎĵµ²åÈëµ½deptdocÁУº
Ïà¹ØÎĵµ£º
ͨÅä·û_
"_"ºÅ±íʾÈÎÒâµ¥¸ö×Ö·û,¸Ã·ûºÅÖ»ÄÜÆ¥ÅäÒ»¸ö×Ö·û."_"¿ÉÒÔ·ÅÔÚ²éѯÌõ¼þµÄÈÎÒâλÖÃ,ÇÒÖ»ÄÜ´ú±íÒ»¸ö×Ö·û.Ò»¸öºº×ÖֻʹÓÃÒ»¸ö"_"±íʾ.
Àý×Ó£º
if PATINDEX('%[ß¹-×ö]%','ÐèÒªÅжϵÄ×Ö·û')>0 -- ÅжÏÊÇ·ñÓÐ×Ö·û
print 'Óкº×Ö'
else
print 'ÎÞºº×Ö'
ͨÅä·û%
"%"·ûºÅÊÇ×Ö·ûÆ¥Åä·û,ÄÜÆ¥Åä0¸ö»ò¸ü¶à×Ö·ûµÄÈÎÒⳤ¶ ......
ÔÀí£º¶ÔÐèÒªÈ¥ÖØ¸´¼Ç¼µÄ×ֶΰ´×éÅÅÐò£¬È»ºóÈ¡ÆäÖÐÒ»Ìõ¼Ç¼¡£ÔÚ×ܲéѯÓï¾äÖÐʹÓÃinÓï·¨¹ýÂË
È¥µôÖØ¸´¼Ç¼
select * from company where comid in (select Max(comid) from company group by companyname)
µÃµ½Öظ´¼Ç¼Êý
select * from company where comid not in (select Max(comid) from company group by companyn ......
1.½¨±í
create table temp(rq varchar(10),shengfu nchar(1))
2.²åÈëÊý¾Ý
insert into temp values('2005-05-09','ʤ')
insert into temp values('2005-05-09','ʤ')
insert into temp values('2005-05-09','¸º')
insert into temp values('2005-05-09','¸º')
insert into temp values('2005-05-10','ʤ')
insert i ......
½²½âSQL ServerÖÐÈÝÒ×»ìÏýµÄÊý¾ÝÀàÐÍ
(1)char¡¢varchar¡¢textºÍnchar¡¢nvarchar¡¢ntext
¡¡¡¡charºÍvarcharµÄ³¤¶È¶¼ÔÚ1µ½8000Ö®¼ä£¬ËüÃǵÄÇø±ðÔÚÓÚcharÊǶ¨³¤×Ö·ûÊý¾Ý£¬¶øvarcharÊDZ䳤×Ö·ûÊý¾Ý¡£Ëùν¶¨³¤¾ÍÊdz¤¶È¹Ì¶¨µÄ£¬µ±ÊäÈëµÄÊý¾Ý³¤¶ÈûÓдﵽָ¶¨µÄ³¤¶Èʱ½«×Ô¶¯ÒÔÓ¢ÎĿոñÔÚÆäºóÃæÌî³ä£¬Ê¹³¤¶È´ïµ½ÏàÓ¦ ......