ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Ò»Ì×SQL¾­µäµÄÃæÊÔÌâ¼°´ð°¸(Ò»)
2014-11-24 01:01:25 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:7133´Î
Tags£ºÒ»Ì× SQL ¾­µä ÊÔÌâ ´ð°¸

1.Ò»µÀSQLÓï¾äÃæÊÔÌ⣬¹ØÓÚgroup by
±íÄÚÈÝ£º
2005-05-09 ʤ
2005-05-09 ʤ
2005-05-09 ¸º
2005-05-09 ¸º
2005-05-10 ʤ
2005-05-10 ¸º
2005-05-10 ¸º


Èç¹ûÒªÉú³ÉÏÂÁнá¹û, ¸ÃÈçºÎдsqlÓï¾ä


ʤ ¸º
2005-05-09 2 2
2005-05-10 1 2
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª
create table #tmp(rq varchar(10),shengfu nchar(1))


insert into #tmp values(¡¯2005-05-09¡ä,¡¯Ê¤¡¯)
insert into #tmp values(¡¯2005-05-09¡ä,¡¯Ê¤¡¯)
insert into #tmp values(¡¯2005-05-09¡ä,¡¯¸º¡¯)
insert into #tmp values(¡¯2005-05-09¡ä,¡¯¸º¡¯)
insert into #tmp values(¡¯2005-05-10¡ä,¡¯Ê¤¡¯)
insert into #tmp values(¡¯2005-05-10¡ä,¡¯¸º¡¯)
insert into #tmp values(¡¯2005-05-10¡ä,¡¯¸º¡¯)


1)select rq, sum(case when shengfu=¡¯Ê¤¡¯ then 1 else 0 end)¡¯Ê¤¡¯,sum(case when shengfu=¡¯¸º¡¯ then 1 else 0 end)¡¯¸º¡¯ from #tmp group by rq
2) select N.rq,N.„Ù,M.Ø“ from (
select rq,„Ù=count(*) from #tmp where shengfu=¡¯Ê¤¡¯group by rq)N inner join
(select rq,Ø“=count(*) from #tmp where shengfu=¡¯¸º¡¯group by rq)M on N.rq=M.rq
3)select a.col001,a.a1 ʤ,b.b1 ¸º from
(select col001,count(col001) a1 from temp1 where col002=¡¯Ê¤¡¯ group by col001) a,
(select col001,count(col001) b1 from temp1 where col002=¡¯¸º¡¯ group by col001) b
where a.col001=b.col001


2.Çë½ÌÒ»¸öÃæÊÔÖÐÓöµ½µÄSQLÓï¾äµÄ²éѯÎÊÌâ
±íÖÐÓÐA B CÈýÁÐ,ÓÃSQLÓï¾äʵÏÖ£ºµ±AÁдóÓÚBÁÐʱѡÔñAÁзñÔòÑ¡ÔñBÁУ¬µ±BÁдóÓÚCÁÐʱѡÔñBÁзñÔòÑ¡ÔñCÁС£
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª
select (case when a>b then a else b end ),
(case when b>c then b esle c end)
from table_name


3.ÃæÊÔÌ⣺һ¸öÈÕÆÚÅжϵÄsqlÓï¾ä£¿
ÇëÈ¡³ötb_send±íÖÐÈÕÆÚ(SendTime×Ö¶Î)Ϊµ±ÌìµÄËùÓмǼ (SendTime×Ö¶ÎΪdatetimeÐÍ£¬°üº¬ÈÕÆÚÓëʱ¼ä)
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª
select * from tb where datediff(dd,SendTime,getdate())=0


4.ÓÐÒ»ÕÅ±í£¬ÀïÃæÓÐ3¸ö×ֶΣºÓïÎÄ£¬Êýѧ£¬Ó¢Óï¡£ÆäÖÐÓÐ3Ìõ¼Ç¼·Ö±ð±íʾÓïÎÄ70·Ö£¬Êýѧ80·Ö£¬Ó¢Óï58·Ö£¬ÇëÓÃÒ»ÌõsqlÓï¾ä²éѯ³öÕâÈýÌõ¼Ç¼²¢°´ÒÔÏÂÌõ¼þÏÔʾ³öÀ´£¨²¢Ð´³öÄúµÄ˼·£©£º
´óÓÚ»òµÈÓÚ80±íʾÓÅÐ㣬´óÓÚ»òµÈÓÚ60±íʾ¼°¸ñ£¬Ð¡ÓÚ60·Ö±íʾ²»¼°¸ñ¡£
ÏÔʾ¸ñʽ£º
ÓïÎÄ Êýѧ Ó¢Óï
¼°¸ñ ÓÅÐã ²»¼°¸ñ
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª
select
(case when ÓïÎÄ>=80 then ¡®ÓÅÐ㡯
when ÓïÎÄ>=60 then ¡®¼°¸ñ¡¯
else ¡®²»¼°¸ñ¡¯) as ÓïÎÄ,
(case when Êýѧ>=80 then ¡®ÓÅÐ㡯
when Êýѧ>=60 then ¡®¼°¸ñ¡¯
else ¡®²»¼°¸ñ¡¯) as Êýѧ,
(case when Ó¢Óï>=80 then ¡®ÓÅÐ㡯
when Ó¢Óï>=60 then ¡®¼°¸ñ¡¯
else ¡®²»¼°¸ñ¡¯) as Ó¢Óï,
from table


5.ÔÚsqlserver2000ÖÐÇëÓÃsql´´½¨Ò»ÕÅÓû§ÁÙʱ±íºÍϵͳÁÙʱ±í£¬ÀïÃæ°üº¬Á½¸ö×Ö¶ÎIDºÍIDValues,ÀàÐͶ¼ÊÇintÐÍ£¬²¢½âÊÍÏÂÁ½ÕßµÄÇø±ð
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª
Óû§ÁÙʱ±í:create table #xx(ID int, IDValues int)
ϵͳÁÙʱ±í:create table ##xx(ID int, IDValues int)


Çø±ð:
Óû§ÁÙʱ±íÖ»¶Ô´´½¨Õâ¸ö±íµÄÓû§µÄSession¿É¼û,¶ÔÆäËû½ø³ÌÊDz»¿É¼ûµÄ.
µ±´´½¨ËüµÄ½ø³ÌÏûʧʱÕâ¸öÁÙʱ±í¾Í×Ô¶¯É¾³ý.


È«¾ÖÁÙʱ±í¶ÔÕû¸öSQL ServerʵÀý¶¼¿É¼û,µ«ÊÇËùÓзÃÎÊËüµÄSession¶¼ÏûʧµÄʱºò,ËüÒ²×Ô¶¯É¾³ý.


6.sqlserver2000ÊÇÒ»ÖÖ´óÐÍÊý¾Ý¿â£¬ËûµÄ´æ´¢ÈÝÁ¿Ö»ÊÜ´æ´¢½éÖʵÄÏÞÖÆ£¬ÇëÎÊËüÊÇͨ¹ýʲô·½Ê½ÊµÏÖÕâÖÖÎÞÏÞÈÝÁ¿»úÖƵġ£
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª
ËüµÄËùÓÐÊý¾Ý¶¼´æ´¢ÔÚÊý¾ÝÎļþÖÐ(*.dbf),ËùÒÔÖ»ÒªÎļþ¹»´ó,SQL ServerµÄ´æ´¢ÈÝÁ¿ÊÇ¿ÉÒÔÀ©´óµÄ.


SQL Server 2000 Êý¾Ý¿âÓÐÈýÖÖÀàÐ͵ÄÎļþ£º


Ö÷ÒªÊý¾ÝÎļþ
Ö÷ÒªÊý¾ÝÎļþÊÇÊý¾Ý¿âµÄÆðµã£¬Ö¸ÏòÊý¾Ý¿âÖÐÎļþµÄÆäËü²¿·Ö¡£Ã¿¸öÊý¾Ý¿â¶¼ÓÐÒ»¸öÖ÷ÒªÊý¾ÝÎļþ¡£Ö÷ÒªÊý¾ÝÎļþµÄÍƼöÎļþÀ©Õ¹ÃûÊÇ .mdf¡£


´ÎÒªÊý¾ÝÎļþ
´ÎÒªÊý¾ÝÎļþ°üº¬³ýÖ÷ÒªÊý¾ÝÎļþÍâµÄËùÓÐÊý¾ÝÎļþ¡£ÓÐЩÊý¾Ý¿â¿ÉÄÜûÓдÎÒªÊý¾ÝÎļþ£¬¶øÓÐЩÊý¾Ý¿âÔòÓжà¸ö´ÎÒªÊý¾ÝÎļþ¡£´ÎÒªÊý¾ÝÎļþµÄÍƼöÎļþÀ©Õ¹ÃûÊÇ .ndf¡£


ÈÕÖ¾Îļþ
ÈÕÖ¾Îļþ°üº¬»Ö¸´Êý¾Ý¿âËùÐèµÄËùÓÐÈÕÖ¾ÐÅÏ¢¡£Ã¿¸öÊý¾Ý¿â±ØÐëÖÁÉÙÓÐÒ»¸öÈÕÖ¾Îļþ£¬µ«¿ÉÒÔ²»Ö¹Ò»¸ö¡£ÈÕÖ¾ÎļþµÄÍƼöÎļþÀ©Õ¹ÃûÊÇ .ldf¡£


7.ÇëÓÃÒ»¸ösqlÓï¾äµÃ³ö½á¹û
´Ótable1,table2ÖÐÈ¡³öÈçtable3ËùÁиñʽÊý¾Ý£¬×¢ÒâÌṩµÄÊý¾Ý¼°½á¹û²»×¼È·£¬Ö»ÊÇ×÷Ϊһ¸ö¸ñʽÏò´ó¼ÒÇë½Ì¡£
ÈçʹÓô洢¹ý³ÌÒ²¿ÉÒÔ¡£


table1


Ô·Ýmon ²¿ÃÅdep Òµ¼¨yj
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª-
Ò»ÔÂ·Ý 01 10
Ò»ÔÂ·Ý 02 10
Ò»ÔÂ·Ý 03 5
¶þÔÂ·Ý 02 8
¶þÔÂ·Ý 04 9
ÈýÔÂ·Ý 03 8


table2


²¿ÃÅdep ²¿ÃÅÃû³Ædname
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C
01 ¹úÄÚÒµÎñÒ»²¿
02 ¹úÄÚÒµÎñ¶þ²¿
03 ¹úÄÚÒµÎñÈý²¿
04 ¹ú¼ÊÒµÎñ²¿


table3 £¨result£©


²¿ÃÅdep Ò»ÔÂ·Ý ¶þÔÂ·Ý ÈýÔ·Ý
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C
01 10 null null
02 10 8 null
03 null 5 8
04 null null 9


¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª
1)
select a.²¿ÃÅÃû³Ædname,b.Òµ¼¨yj as ¡®Ò»Ô·ݡ¯,c.Òµ¼¨yj as ¡®¶þÔ·ݡ¯,d.Òµ¼¨yj as ¡®ÈýÔ·ݡ¯
from table1 a,table2 b,table2 c,table2 d
where a.²¿ÃÅdep = b.²¿ÃÅdep and b.Ô·Ýmon = ¡®Ò»Ô·ݡ¯ and
a.²¿ÃÅdep = c.²¿ÃÅdep and c.Ô·Ýmon = ¡®¶þÔ·ݡ¯ and
a.²¿ÃÅdep = d.²¿ÃÅdep and d.Ô·Ýmon = ¡®ÈýÔ·ݡ¯ and
2)
select a.dep,
sum(cas

Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºOracle DBAÃæÊÔÌâ¼°²Î¿¼´ð°¸ ÏÂһƪ£ºPass-by-value Pass-by-reference..

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿