SQL Server 2005ÖеÄT SQLÔöÇ¿C
ͨÓñí±í´ïʽ Common Table Expressions
ͨÓñí±í´ïʽ£¨CTE£©ÊÇÒ»¸ö¿ÉÒÔÓɶ¨ÒåÓï¾äÒýÓõÄÁÙʱ±íÃüÃûµÄ½á¹û¼¯¡£ÔÚËûÃǵļòµ¥ÐÎʽÖУ¬Äú¿ÉÒÔ½«CTEÊÓΪÀàËÆÓÚÊÓͼºÍÅÉÉú±í»ìºÏ¹¦ÄܵĸĽø°æ±¾¡£ÔÚ²éѯµÄfrom×Ó¾äÖÐÒýÓÃCTEµÄ·½Ê½ÀàËÆÓÚÒýÓÃÅÉÉú±íºÍÊÓͼµÄ·½Ê½¡£Ö»Ð붨ÒåCTEÒ»´Î£¬¼´¿ÉÔÚ²éѯÖжà´ÎÒýÓÃËü¡£ÔÚCTEµÄ¶¨ÒåÖУ¬¿ÉÒÔÒýÓÃÔÚͬһÅú´¦ÀíÖж¨ÒåµÄ±äÁ¿¡£µ«ÊÇCTEµÄÕæÕýÍþÁ¦ÔÚÓÚËüÃǵĵݹ鹦ÄÜ£¬¼´CTE¿ÉÒÔ°üº¬¶ÔËüÃÇ×ÔÉíµÄÒýÓá£
ÊÓͼ¡¢ÅÉÉú±íºÍCTEÄÚ²¿µÄ²éѯµÄÒ»°ãÐÎʽ
1¡¢ÊÓͼ
CREATE VIEW <view_name>(<column_aliases>) AS <view_query>
2¡¢ÅÉÉú±í
SELECT * from (<derived_table)query>) AS <dericed_table_alias>(<column_aliases>)
3¡¢CTE
WITH <cte_alias>(<column_aliases>)
AS
{
<cte_query>
)
SELECT * from <cte_alias]>
Ôڹؼü×ÖWITHÖ®ºó£¬ÎªCTEÌṩһ¸ö±ðÃû£¬²¢ÇÒΪËüµÄ½á¹ûÁÐÌṩһ¸ö¿ÉÑ¡µÄ±ðÃûÁÐ±í£»±àдCTEµÄÖ÷Ì壻Ȼºó´ÓÍⲿ²éѯÖÐÒýÓÃËü¡£
with aa(id1,id2 )
as
(select xsrq,count(spbm)
from ecv_saledetail where xsrq>='2010-01-01' and xsrq<='2010-01-10'
group by xsrq)
select * from aa
Ïà¹ØÎĵµ£º
Ö±½ÓÔÚSQL²éѯ·ÖÎöÆ÷ÖжÁÈ¡EXCELÎļþÐèҪʹÓõ½OPENDATASOURCE¡£
µ«ÊÇʹÓÃËü֮ǰÐèÒª½øÐÐÅäÖÃһϡ£¼ÇµÃÈçÏÂÅäÖÃÊDZØÐëµÄ£º
1¡¢Ö´ÐÐÕâÁ½¸ö´æ´¢¹ý³Ì£º
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
ËüµÄ×÷Óãº
µÚÒ»¸öÊÇ£ºÊÇ·ñÖ§³Ö¸ß¼¶Ñ¡ ......
¶ÔÓÚÒ»¸öÊý¾Ý¿âÍêÕû±¸·ÝÀ´Ëµ£¬±¸·ÝµÄËٶȺܴó³Ì¶ÈÉÏÈ¡¾öÓÚÏÂÃæÁ½¸öÒòËØ£º¶Á´ÅÅÌÊý¾Ý¡¢ÈÕÖ¾ÎļþµÄÍÌÍÂÁ¿£¬Ð´´ÅÅÌÊý¾ÝÎļþµÄÍÌÍÂÁ¿¡£
ÏÂͼÊDZ¸·Ý¹ý³ÌÖдÅÅ̵ı仯Çé¿ö£º
¶ÁÍÌÍÂÁ¿
¶ÁÍÌÍÂÁ¿µÄ´óСȡ¾öÓÚ´ÅÅ̶ÁÈ¡Êý¾ÝµÄËÙ¶È£¬¶ø´ÅÅ̶ÁÈ¡µÄËÙ¶ÈÓÖÈ¡¾öÓÚÊý¾ÝÎļþÔÚ´ÅÅÌÖеÄλÖá£Òò´Ë£¬Î»ÓÚ²»Í¬ÅÌ·ûÉϲ»Í¬Êý¾Ý¿âÎļþµÄ¶ÁÈ¡Ë ......
left join(×óÁª½Ó) ·µ»Ø°üÀ¨×ó±íÖеÄËùÓмǼºÍÓÒ±íÖÐÁª½á×Ö¶ÎÏàµÈµÄ¼Ç¼
right join(ÓÒÁª½Ó) ·µ»Ø°üÀ¨ÓÒ±íÖеÄËùÓмǼºÍ×ó±íÖÐÁª½á×Ö¶ÎÏàµÈµÄ¼Ç¼
inner join(µÈÖµÁ¬½Ó) Ö»·µ»ØÁ½¸ö±íÖÐÁª½á×Ö¶ÎÏàµÈµÄÐÐ
¾ÙÀýÈçÏ£º
--------------------------------------------
±íA¼Ç¼ÈçÏ£º
aID¡¡¡¡¡¡¡¡¡¡aNum
1¡¡¡¡¡¡¡¡¡¡a ......
´ó¼Ò¶¼ÖªµÀ£¬ÓÃPL/SQLÁ¬½ÓOracle£¬ÊÇÐèÒª°²×°Oracle¿Í»§¶ËÈí¼þµÄ¡£ÓÐûҪÏë¹ý²»°²×°Oracle¿Í»§¶ËÖ±½ÓÁ¬½ÓOracleÄØ£¿
ÆäʵÎÒÒ»Ö±ÏëÕâÑù×ö£¬ÒòΪÕâ¸ö¿Í»§¶ËʵÔÚÌ«ÈÃÈËÌÖÑáÁË£¡£¡£¡²»µ«»á°²×°Ò»¸öJDK£¬¶øÇÒ»¹»á°Ñ×Ô¼º·ÅÔÚ»·¾³±äÁ¿µÄ×îÇ°Ãæ£¬»áÔì³É²»Ð ......
-- ²é¿´ORACLE Êý¾Ý¿âÖб¾Óû§ÏµÄËùÓбí
SELECT table_name from user_tables;
-- ²é¿´ORACLE Êý¾Ý¿âÖÐËùÓÐÓû§ÏµÄËùÓбí
select user,table_name from all_tables;
-- ²é¿´ORACLE Êý¾Ý¿âÖб¾Óû§ÏµÄËùÓÐÁÐ
select table_name,column_name from user_tab_columns;
-- ²é¿´ORACLE Êý¾Ý¿âÖб¾Óû§ÏµÄËùÓÐÁÐ
se ......