Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

sqlserver×Ö·û´®ºÏ²¢(merge)·½·¨»ã×Ü

ÎÞÂÛÊÇÔÚsql 2000£¬»¹ÊÇÔÚ sql 2005 ÖÐ,¶¼Ã»ÓÐÌṩ×Ö·û´®µÄ¾ÛºÏº¯Êý£¬ËùÒÔ£¬µ±ÎÒÃÇÔÚ´¦ÀíÏÂÁÐÒªÇóʱ£¬»á±È½ÏÂé·³£ºÓбítb, ÈçÏ£ºid value----- ------1 aa1 bb2 aaa2 bbb2 cccÐèÒªµÃµ½½á¹û£ºid values------ -----------1 aa,bb2 aaa,bbb,ccc¼´£¬ group by id, Çó value µÄºÍ£¨×Ö·û´®Ïà¼Ó£© 1. ¾ÉµÄ½â¾ö·½·¨-- 1. ´´½¨´¦Àíº¯ÊýCREATE FUNCTION dbo.f_str(@id int)RETURNS varchar(8000)ASBEGINDECLARE @r varchar(8000)SET @r = ''SELECT @r = @r + ',' + valuefrom tbWHERE id=@idRETURN STUFF(@r, 1, 1, '')ENDGO-- µ÷Óú¯Êý SELECt id, values=dbo.f_str(id)from tbGROUP BY id -- 2.1 еĽâ¾ö·½·¨-- ʾÀýÊý¾ÝDECLARE @t TABLE(id int, value varchar(10))INSERT @t SELECT 1, 'aa'UNION ALL SELECT 1, 'bb'UNION ALL SELECT 2, 'aaa'UNION ALL SELECT 2, 'bbb'UNION ALL SELECT 2, 'ccc' -- ²éѯ´¦ÀíSELECT *from(SELECT DISTINCTidfrom @t)AOUTER APPLY(SELECT[values]= STUFF(REPLACE(REPLACE((SELECT value from @t NWHERE id = A.idFOR XML AUTO), '', ''), 1, 1, ''))N /*--½á¹ûid values----------- ----------------1 aa,bb2 aaa,bbb,ccc(2 ÐÐÊÜÓ°Ïì)--*/--2.2DECLARE @TB TABLE([Name] VARCHAR(1), [Value] VARCHAR(6))INSERT @TBSELECT 'A', '123' UNION ALLSELECT 'A', '677' UNION ALLSELECT 'B', 'HHDA' UNION ALLSELECT 'B', 'JYUKY' UNION ALLSELECT 'B', 'WRWFCW' UNION ALLSELECT 'B', 'YUYUY' UNION ALLSELECT 'C', 'TRREER' SELECT [Name],STUFF((SELECT ','+[Value] from @TB WHERE NAME=A.NAME FOR XML PATH('')),1,1,'') AS [Value]from @TB AS AGROUP BY [Name]/*Name Value---- ------------------------------------------A 123,677B HHDA,JYUKY,WRWFCW,YUYUYC TRREER*/ --¸÷ÖÖ×Ö·û´®·Öº¯Êý --3.3.1 ʹÓÃÓα귨½øÐÐ×Ö·û´®ºÏ²¢´¦ÀíµÄʾÀý¡£--´¦ÀíµÄÊý¾ÝCREATE TABLE tb(col1 varchar(10),col2 int)INSERT tb SELECT 'a',1UNION ALL SELECT 'a',2UNION ALL SELECT 'b',1UNION ALL SELECT 'b',2UNION ALL SELECT 'b',3 --ºÏ²¢´¦Àí--¶¨Òå½á¹û¼¯±í±äÁ¿DECLARE @t TABLE(col1 varchar(10),col2 varchar(100)) --¶¨ÒåÓα겢½øÐкϲ¢´¦ÀíDECLARE tb CURSOR LOCALFORSELECT col1,col2 from tb ORDER BY col1,col2DECLARE @col1_old varchar(10),@col1 varchar(10),@col2 int,@s varchar(100)OPEN tbFETCH tb INTO @col1,@col2SE


Ïà¹ØÎĵµ£º

Microsoft SqlServer 2005 ͨÓ÷ÖÒ³ ´æ´¢¹ý³Ì

±¾À´ÎÒÊDz»ÔÞ³ÉʹÓÃͨÓô洢¹ý³ÌµÄ£¬Ö÷ÒªÊÇÒòΪ¸ù¾Ý±í½á¹¹À´¶¨ÖÆ·ÖÒ³²éѯ²»Óö¯Ì¬µÄÆ´SQL£¬ÕâÑù²ÅÊÇÕæÕýµÄ¸ßЧ£¬¶øÇÒֻҪд¹ýÒ»¸ö£¬ÄÇôÔÙÓÐÐÂÐèÇóµÄʱºò£¬Ð¡·¶Î§¸Ä¶¯¼¸´¦¾ÍokÁË¡£
µ«×ÜÊÇÓÐÈËÏòÎÒÌÖÒª»òÕßÌÖÂÛͨÓô洢¹ý³Ì£¬Ã»°ì·¨£¬±»±ÆÎÞÄΣ¬Á¼ÐÄÉ¥ÓëÀ§¾³¡£
ľÓÐÕÒµ½T-SQL´úÂë±à¼­Æ÷
-- ============================= ......

SQLServer ÖбíµÄ×ÔÔö³¤ÁÐ

1.½¨±í(Create table)ʱʹÓàIDENTITY (SEED,INCREMENT)
ÆäÖÐSEEDÊÇÆðʼֵ£¬INCREMENTÊÇÔöÁ¿¡£
Àý£º
CREATE TABLE mytable1
    (
      [user_id] BIGINT NOT NULL
                       IDENTITY(1, 1) , ......

oracleºÍsqlserver²éѯʱ×èÈûÇé¿ö

1.oracle»·¾³
create table test
(
id number(4),
name varchar2(20)
)
ÔÚÒ»¸ösessionÖÐ
insert into test values(1,'aa');
ÔÚÁíÒ»¸ösessionÖÐ
select * from test1;
²éѯû±»×èÈû
2.sqlserver»·¾³
ÔÚÒ»¸ösessionÖÐ
insert into test values(1,'aa');
ÔÚÁíÒ»¸ösessionÖÐ
select * from test1;
²éѯ±»×èÈû(Ê ......

È«ÎÄË÷ÒýÔ­Àí¼°ÆäʾÀý£¨sqlserver£©

È«ÎļìË÷ÊǶԴóÊý¾ÝÎı¾½øÐÐË÷Òý£¬ÔÚ½¨Á¢µÄË÷ÒýÖжÔÒª²éÕҵĵ¥´Ê½øÐнøÐÐËÑË÷£¬¶¨Î»ÄÄЩÎı¾Êý¾Ý°üÀ¨ÒªËÑË÷µÄµ¥´Ê¡£Òò´Ë£¬È«ÎļìË÷µÄÈ«²¿¹¤×÷¾ÍÊǽ¨Á¢Ë÷ÒýºÍÔÚË÷ÒýÖÐËÑË÷¶¨Î»£¬ËùÓеŤ×÷¶¼ÊÇÎ§ÈÆÕâÁ½¸öÀ´½øÐеġ£ÏÂÃæ¾ÍÖð¸ö½éÉÜ¡£
¡¡¡¡½¨Á¢È«ÎÄË÷ÒýÖÐÓÐÁ½Ïî·Ç³£ÖØÒª£¬Ò»¸öÊÇÈçºÎ¶ÔÎı¾½øÐзִʣ¬Ò»Êǽ¨Á¢Ë÷ÒýµÄÊý¾Ý½á¹¹¡ ......

sqlserver²éѯ£¨Ê±¼äÏà¹Ø£©

select a.UserName Óû§Ãû,b.LoginName ºÅÂë,c.MenuTitle ±êÌâ,max(a.AccessTime)·ÃÎÊʱ¼ä  from JfAccessLog a,OaUser b,JfMenu c where CONVERT(char,a.AccessTime,112)=CONVERT(char,GETDATE(),112)  and a.UserId=b.UserId and a.MenuId=c.MenuId and a.MenuId=@menu group by a.UserName,b.LoginName,c.Menu ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ