SQLServerÈÎÒâÁÐÖ®¼äµÄ¾ÛºÏ ÊÕ²Ø
sqlµÄmaxÖ®ÀàµÄ¾ÛºÏº¯ÊýÖ»ÄÜÕë¶ÔͬһÁеÄnÐÐÔËË㣬Èç¹û¶ÔnÁÐÔËË㣬һ°ã¶¼ÓÃcase Óï¾äÀ´Åжϣ¬Èç¹ûÁÐÉÙ»¹±È½ÏÈÝÒ×д£¬ÁжàÁ˾ÍÂé·³ÁË¡£ÕâÀï½éÉÜÒ»¸öͨ¹ýxmlºÏ²¢Áв¢×ªÎªÐм¯ºóÖ±½ÓÓþۺϺ¯ÊýÇóÖµµÄ·½·¨£¬²âÊÔÓÃÀýºÍ´úÂëÈçÏÂ
--------------------------------------------------------------------------------
/*
²âÊÔÃû³Æ£ºÀûÓà XML ÇóÈÎÒâÁÐÖ®¼äµÄ¾ÛºÏ
²âÊÔ¹¦ÄÜ£º¶ÔÒ»ÕűíµÄÁÐÊý¾Ý×ö min ¡¢ max ¡¢ sum ºÍ avg ÔËËã
ÔËÐÐÔÀí£º×ֶκϲ¢Îª xml ºó×ö xquery ²éѯתΪÐм¯ºó¾ÛºÏ
×÷Õߣº jinjazz £¨½üÉí¼ô£©
*/
-- ½¨Á¢²âÊÔ»·¾³
declare @t table (
id smallint ,
a smallint , b smallint ,
c smallint , d smallint ,
e smallint , f smallint )
insert into @t
select 1, 1, 2, 3, 4, 6, 7 union all
select 2, 34, 45, 56, 54, 9, 6
-- ²âÊÔÓï¾ä
select a.*, c.*
from @t a outer apply(
select doc=(
select * from @t as doc where id= a. id for xml path ( '' ), type )
) b
outer apply(
select
min ( r) as minValue,
max ( r) as maxValue,
sum ( r) as sumValue,
avg ( r) as avgValue
from (
select cast ( cast ( d. n. query( 'text()' ) as varchar ( max )) as int ) as r
from doc. nodes( '/a,b,c,d,e,f' ) D( n)) tt
) c
/* ²âÊÔ½á¹û
id a b c d e f minValue maxValue sumValue avgValue
------ ------ ------ ------ ------ ------ ------ ----------- ----------- ----------- -----------
1 1 2 3 4 6 7 1  
ÔÚsqlserver(Ó¦¸Ã˵ÔÚÄ¿Ç°ËùÓÐÊý¾Ý¿â²úÆ·)Öд´½¨Ò»¸ö×ÊÔ´Èç±í£¬ÊÓͼ£¬´æ´¢¹ý³ÌÖж¼ÒªÅжÏÓë´´½¨µÄ×ÊÔ´ÊÇ·ñÒѾ´æÔÚ
ÔÚsqlserverÖÐÒ»°ã¿Éͨ¹ý²éѯsys.objectsϵͳ±íÀ´µÃÖª½á¹û£¬²»¹ý¿ÉÒÔÓиü·½±ãµÄ·½·¨
ÈçÏ£º
if object_id('tb_table') is not null
......
ÁÙ½üÄêÖÕ£¬ÔÚ¹¤×÷Ö®Óà¶Ô¹¤×÷ºÍѧϰÖÐÓöµ½µÄÎÊÌâÒÔ¼°³£ÓõÄһЩ֪ʶµã×öÁËЩÕûÀí£¬ÒÔ±¸ºóÓᣱ¾ÎÄÉæ¼°µÄÄÚÈÝΪÊý¾Ý¿â,ËãÊǶԿª·¢×ܽá(1)---Êý¾Ý¿âÒ»ÎĵIJ¹³ä¡£
1 ¶ÔÓÚÖ÷¼üÉèÖÃÁËIdentityµÄ±í£¬ÔÚɾ³ý±íÖÐÊý¾ÝºóÔÙÍù±íÖвåÈëÊý¾Ý£¬IdentityÁв»ÊÇ´Ó1ÆðʼÁË£¬Èç¹ûÏëɾ³ýÊý¾ÝºóIndentityÁÐÈÔ´Ó1Æðʼ£¬¿ÉÒÔÓÃÏÂÃæ´úÂëÀ´É¾³ýÊý¾Ý ......