sql group by Ó÷¨
2009-07-16 11:01:00 Òµ½ç | ÆÀÂÛ(0) | ä¯ÀÀ(1676)
group byÖ÷ÒªÊÇÓÃÀ´·Ö×éµÄ£¬Ôõô¸ö·Ö×éÄØ£¿
ÒÔÏÂÓÃÁ½¸öÀý×Ó˵Ã÷Á½¸öʹÓ÷½Ã棬1ÊǺÏÀíµÄ·µ»ØºÏ¼ÆÖµ£¨·ÀÖ¹µÑ¿¨¶û»ýÏÖÏ󣩣¬2ÊÇÓ÷Ö×éÀ´ÕÒ³öÖØ¸´µÄ¼Ç¼
====================================================================
¡ï¡ï¡ïÀý×Ó1£º¼ÙÈçÓÐÕâôһ¸ö±í£ºtab_1£¬ËüÓÐÁ½¸ö×ֶΣºxm¡¢gzlb¡¢je£¨ÐÕÃû¡¢¹¤×ÊÀà±ð¡¢½ð¶î£©£¬¾ßÌåÊý¾ÝÈçÏ£º
xm```````gzlb`````````je
-----------------------------------------
ÕÅÈý`````ÑøÀϽð`````1000
ÕÅÈý`````»¤Àí·Ñ`````200
ÕÅÈý`````ÆäËû```````50
.............
ÀîËÄ`````ÑøÀϽð`````800
ÀîËÄ`````ÆäËû```````50
.............
ÍõÎå`````ÑøÀϽð`````900
ÍõÎå`````ÆäËû```````35
¿ÉÒÔ¿´³öÿ¸öÈ˵Ť×ʶ¼Êǰ´Àà±ð´æ·ÅµÄ£¬Èç¹ûÒª·µ»ØºÏ¼ÆµÄÊý¾Ý£¬È磺
ÕÅÈý``````1250
ÀîËÄ``````850
ÍõÎå``````935
¸ÃÔõôдSQLÄØ£¿³õѧÕßÍùÍù»áÕâôд£ºselect xm, sum(je) from tab_1;µ«½á¹û»áÊÇʲôÑùÄØ£¿½á¹û½«ÊÇ£º
ÕÅÈý``````1250
ÕÅÈý``````850
ÕÅÈý``````935
ÀîËÄ``````1250
ÀîËÄ``````850
ÀîËÄ``````935
ÍõÎå``````125 ......
Ó¦ÓóÌÐòͨ¹ýodbc,ado»òado.netÓësql serverÁ¬½Ó,ÎÞÂÛͨ¹ýÄÇÖÖ·½Ê½½øÐÐÁ¬½Ó,ÿһÖÖÁ¬½Ó·½Ê½,Ê×ÏÈÒªÉèÖõÄÊÇÁ¬½Ó´®¡£ÒÔϾÍ˵˵¼¸ÖÖ·½Ê½µÄÁ¬½Ó´®µÄÉèÖãº
ÏÈ˵˵odbcÁ¬½Ó,odbcÈ«³ÆÎª¿ª·ÅʽÊý¾Ý¿âÁ¬½Ó,ÊÇ΢Èí×îÔç·¢²¼µÄÊý¾Ý¿âÁ¬½Ó·½Ê½¡£Á¬½Ó´®¸ñʽÈçÏ£ºdriver={sql server};server=·þÎñÆ÷°²È«Ãû;uid=Óû§Ãû;pwd=ÃÜÂë;database=ÒªÁ¬½ÓµÄÊý¾Ý¿âÃû³Æ
Èç¹ûÊÇwindowÉí·ÝÑé֤ģʽ, ¼ÓÉÏTrusted_Connection=yes,uidÓëpwd¿ÉÒÔ²»Òª
Á¬½Ó´®±äΪ: driver={sql server};server=·þÎñÆ÷ʵÀýÃû; database=ÒªÁ¬½ÓµÄÊý¾Ý¿âÃû³Æ; Trusted_Connection=yes
ÁíÍâ,ʹÓÃodbcÁ¬½Ó¿ÉÖ±½Ó´´½¨odbcÊý¾ÝÔ´,´´½¨µÄ·½·¨ÊÇÔÚwindow¿ØÖÆÃæ°å,¹ÜÀí¹¤¾ßÖеÄODBCÊý¾ÝÔ´¹ÜÀíÆ÷Öд´½¨,¸ù¾ÝÊý¾ÝÔ´Á¬½Ó´®Îª:
Dsn=Êý¾ÝÔ´Ãû³Æ; uid=Óû§Ãû;pwd=ÃÜÂë;
Èç¹ûÊÇwindowÉí·ÝÑéÖ¤ÔòuidÓëpwd²»Òª,¼ÓTrusted_Connection=yes;
ÔÙ˵˵adoÁ¬½Ó´®,adoÁ¬½ÓÈç¹ûÑ¡ÔñÌṩ³ÌÐòΪoledb for odbcÔòÁ¬½Ó´®ÓëodbcÏàͬ¡£
ÒÔÏÂ˵˵ѡÔñÌṩ³ÌÐòΪoledb for sql serverʱµÄÁ¬½Ó´®
1.ʹÓÃsql serverÕË»§Ê±µÄÁ¬½Ó´®:
Provider=SQLOLEDB.1; Persist Security Info=True;User ID=Óû§Ãû; Password=ÃÜÂë;
Initial Catalog=ÒªÁ¬½ÓµÄ ......
×î½üÕûÀí³öÀ´µÄ.Èç¹û²»ÍêÈ«µÄ»°Ï£Íû´ó¼Ò²¹³ä.
ÔÚaccessÖУ¬×ª»»Îª´óдµÄsqlº¯ÊýÊÇucase£¬ÔÚsqlserverÖУ¬×ª»»Îª´óдµÄº¯ÊýÊÇupper£»ÔÚaccessÖУ¬×ª»»ÎªÐ¡Ð´µÄº¯ÊýÊÇlcase£¬ÔÚsqlserverÖУ¬×ª»»ÎªÐ¡Ð´µÄº¯ÊýÊÇlower£»ÔÚaccessÖУ¬È¡µ±Ç°Ê±¼äµÄº¯ÊýÊÇnow£¬ÁíÍ⻹ÓÐÒ»¸öÈ¡ÈÕÆÚº¯Êýdate£¬ÔÚsqlserverÖУ¬È¡µ±Ç°µÄº¯ÊýÊÇgetdate£¬Ã»ÓÐÖ±½ÓµÄÈ¡ÈÕÆÚº¯Êý¡£
ÔÚaccessÖУ¬datediff()ºÍdateaddº¯Êý±íʾʱ¼äÀàÐ͵IJ¿·Ö±ØÐëÓõ¥ÒýºÅÀ¨ÆðÀ´£¬Ð´³ÉÕâÖÖÑùʽ£ºselect datediff('n',addtime,now()) from * ……£¬»òÕßselect dateadd('d',5,now())£¬¶øÔÚsqlserverÖУ¬±ØÐëд³Éselect datediff(n,addtime,getdate()) from *……£¬»òÕßselect dateadd(d,5,getdate())¡£
ÔÚaccessÖУ¬×Ö·û´®ÀàÐ͵ÄÊý¾Ý²»ÄÜÓÃreplaceº¯Êý£¬µ«¿ÉÒÔÓà º¯Êý£¬±¸×¢ÀàÐ͵ÄÊý¾ÝÒ²Ò»Ñù¡£×Ö·û´®ÀàÐ͵ÄÊý¾ÝºÍ±¸×¢ÀàÐ͵ÄÊý¾Ý¶¼¿ÉÒÔÓÃlikeÀ´²éÕÒÆ¥Åä¡£ÔÚsqlserverÖУ¬×Ö·û´®ÀàÐ͵ÄÊý¾Ý¿ÉÒÔÓÃreplaceº¯ÊýºÍ º¯Êý£¬µ«ÊÇntextÀàÐ͵ÄÊý¾Ý²»ÄÜ¡£¶øÇÒsqlserverÖÐntextÀàÐ͵ÄÊý¾Ý»¹²»ÄÜÓÃlikeÀ´²éÕÒÆ¥Åä¡£
²»¹ýaccessºÍsqlserver¶¼Ö§³Öϵͳ±äÁ¿@@identity£¬ÕâÒ»µãÖªµÀµÄÈ˲»¶à¡£
ÆäËüÒì֮ͬ´¦£¬ÈÝÎÒÒ ......
×î½üÕûÀí³öÀ´µÄ.Èç¹û²»ÍêÈ«µÄ»°Ï£Íû´ó¼Ò²¹³ä.
ÔÚaccessÖУ¬×ª»»Îª´óдµÄsqlº¯ÊýÊÇucase£¬ÔÚsqlserverÖУ¬×ª»»Îª´óдµÄº¯ÊýÊÇupper£»ÔÚaccessÖУ¬×ª»»ÎªÐ¡Ð´µÄº¯ÊýÊÇlcase£¬ÔÚsqlserverÖУ¬×ª»»ÎªÐ¡Ð´µÄº¯ÊýÊÇlower£»ÔÚaccessÖУ¬È¡µ±Ç°Ê±¼äµÄº¯ÊýÊÇnow£¬ÁíÍ⻹ÓÐÒ»¸öÈ¡ÈÕÆÚº¯Êýdate£¬ÔÚsqlserverÖУ¬È¡µ±Ç°µÄº¯ÊýÊÇgetdate£¬Ã»ÓÐÖ±½ÓµÄÈ¡ÈÕÆÚº¯Êý¡£
ÔÚaccessÖУ¬datediff()ºÍdateaddº¯Êý±íʾʱ¼äÀàÐ͵IJ¿·Ö±ØÐëÓõ¥ÒýºÅÀ¨ÆðÀ´£¬Ð´³ÉÕâÖÖÑùʽ£ºselect datediff('n',addtime,now()) from * ……£¬»òÕßselect dateadd('d',5,now())£¬¶øÔÚsqlserverÖУ¬±ØÐëд³Éselect datediff(n,addtime,getdate()) from *……£¬»òÕßselect dateadd(d,5,getdate())¡£
ÔÚaccessÖУ¬×Ö·û´®ÀàÐ͵ÄÊý¾Ý²»ÄÜÓÃreplaceº¯Êý£¬µ«¿ÉÒÔÓà º¯Êý£¬±¸×¢ÀàÐ͵ÄÊý¾ÝÒ²Ò»Ñù¡£×Ö·û´®ÀàÐ͵ÄÊý¾ÝºÍ±¸×¢ÀàÐ͵ÄÊý¾Ý¶¼¿ÉÒÔÓÃlikeÀ´²éÕÒÆ¥Åä¡£ÔÚsqlserverÖУ¬×Ö·û´®ÀàÐ͵ÄÊý¾Ý¿ÉÒÔÓÃreplaceº¯ÊýºÍ º¯Êý£¬µ«ÊÇntextÀàÐ͵ÄÊý¾Ý²»ÄÜ¡£¶øÇÒsqlserverÖÐntextÀàÐ͵ÄÊý¾Ý»¹²»ÄÜÓÃlikeÀ´²éÕÒÆ¥Åä¡£
²»¹ýaccessºÍsqlserver¶¼Ö§³Öϵͳ±äÁ¿@@identity£¬ÕâÒ»µãÖªµÀµÄÈ˲»¶à¡£
ÆäËüÒì֮ͬ´¦£¬ÈÝÎÒÒ ......
×î½üÕûÀí³öÀ´µÄ.Èç¹û²»ÍêÈ«µÄ»°Ï£Íû´ó¼Ò²¹³ä.
ÔÚaccessÖУ¬×ª»»Îª´óдµÄsqlº¯ÊýÊÇucase£¬ÔÚsqlserverÖУ¬×ª»»Îª´óдµÄº¯ÊýÊÇupper£»ÔÚaccessÖУ¬×ª»»ÎªÐ¡Ð´µÄº¯ÊýÊÇlcase£¬ÔÚsqlserverÖУ¬×ª»»ÎªÐ¡Ð´µÄº¯ÊýÊÇlower£»ÔÚaccessÖУ¬È¡µ±Ç°Ê±¼äµÄº¯ÊýÊÇnow£¬ÁíÍ⻹ÓÐÒ»¸öÈ¡ÈÕÆÚº¯Êýdate£¬ÔÚsqlserverÖУ¬È¡µ±Ç°µÄº¯ÊýÊÇgetdate£¬Ã»ÓÐÖ±½ÓµÄÈ¡ÈÕÆÚº¯Êý¡£
ÔÚaccessÖУ¬datediff()ºÍdateaddº¯Êý±íʾʱ¼äÀàÐ͵IJ¿·Ö±ØÐëÓõ¥ÒýºÅÀ¨ÆðÀ´£¬Ð´³ÉÕâÖÖÑùʽ£ºselect datediff('n',addtime,now()) from * ……£¬»òÕßselect dateadd('d',5,now())£¬¶øÔÚsqlserverÖУ¬±ØÐëд³Éselect datediff(n,addtime,getdate()) from *……£¬»òÕßselect dateadd(d,5,getdate())¡£
ÔÚaccessÖУ¬×Ö·û´®ÀàÐ͵ÄÊý¾Ý²»ÄÜÓÃreplaceº¯Êý£¬µ«¿ÉÒÔÓà º¯Êý£¬±¸×¢ÀàÐ͵ÄÊý¾ÝÒ²Ò»Ñù¡£×Ö·û´®ÀàÐ͵ÄÊý¾ÝºÍ±¸×¢ÀàÐ͵ÄÊý¾Ý¶¼¿ÉÒÔÓÃlikeÀ´²éÕÒÆ¥Åä¡£ÔÚsqlserverÖУ¬×Ö·û´®ÀàÐ͵ÄÊý¾Ý¿ÉÒÔÓÃreplaceº¯ÊýºÍ º¯Êý£¬µ«ÊÇntextÀàÐ͵ÄÊý¾Ý²»ÄÜ¡£¶øÇÒsqlserverÖÐntextÀàÐ͵ÄÊý¾Ý»¹²»ÄÜÓÃlikeÀ´²éÕÒÆ¥Åä¡£
²»¹ýaccessºÍsqlserver¶¼Ö§³Öϵͳ±äÁ¿@@identity£¬ÕâÒ»µãÖªµÀµÄÈ˲»¶à¡£
ÆäËüÒì֮ͬ´¦£¬ÈÝÎÒÒ ......
Oracle SQL PLUS »ù±¾²Ù×÷1
怬
c:\>sqlplus "sys/test1234 as sysdba" ÒÔsysdbaÉí·ÝµÇ¼
c:\>sqlplus/nolog ÒÔnologÉí·ÝµÇ¼
sql> connect sys/test1234 as sysdba
Connected.
Æô¶¯
SQL> startup
Õý³£Æô¶¯ £¨1Æô¶¯ÊµÀý£¬2´ò¿ª¿ØÖÆÎļþ£¬3´ò¿ªÊý¾ÝÎļþ£©
SQL> startup mount
(1Æô¶¯ÊµÀý£¬2´ò¿ª¿ØÖÆÎļþ) ²»Æô¶¯Êý¾ÝÎļþ
ÀýÈç½øÐÐÈȱ¸·ÝµÄʱºò£¬ÔÚ²»¹éµµ·½Ê½£¨No Archive Mode£©Ï²»ÄܽøÐС£ËùÒÔÒª¸ü¸Äģʽ£¬µ«¸ü¸Äģʽ²»ÔÊÐíÆô¶¯Êý¾ÝÎļþ£¬Õâʱºò¾ÍÒªÓõ½mount²ÎÊýÀ´Æô¶¯¡£ÔÚmountģʽÏ£¬ÊäÈëalter database archivelog È»ºóд alter database open´ò¿ªÊý¾ÝÎļþ¡£
SQL> startup nomount
Æô¶¯ÊµÀý£¬Á¬¿ØÖÆÎļþÒ²²»´ò¿ª£¬ÀýÈç¿ØÖÆÎļþË𻵣¬¸ù±¾´ò²»¿ªµÄÇé¿ö£¬ÔÚÆô¶¯ÊµÀýÖ®ºó£¬ÖØÐ´´½¨¿ØÖÆÎļþ¡£
¹Ø±Õ
SQL> shutdown immediate
´ó¶àÊýÇé¿öÏÂʹÓá£ÆÈʹÿ¸öÓû§Ö´ÐÐÍ굱ǰSQLÓï¾äºó¶Ï¿ªÁ¬½Ó¡£
......
Oracle SQL PLUS »ù±¾²Ù×÷1
怬
c:\>sqlplus "sys/test1234 as sysdba" ÒÔsysdbaÉí·ÝµÇ¼
c:\>sqlplus/nolog ÒÔnologÉí·ÝµÇ¼
sql> connect sys/test1234 as sysdba
Connected.
Æô¶¯
SQL> startup
Õý³£Æô¶¯ £¨1Æô¶¯ÊµÀý£¬2´ò¿ª¿ØÖÆÎļþ£¬3´ò¿ªÊý¾ÝÎļþ£©
SQL> startup mount
(1Æô¶¯ÊµÀý£¬2´ò¿ª¿ØÖÆÎļþ) ²»Æô¶¯Êý¾ÝÎļþ
ÀýÈç½øÐÐÈȱ¸·ÝµÄʱºò£¬ÔÚ²»¹éµµ·½Ê½£¨No Archive Mode£©Ï²»ÄܽøÐС£ËùÒÔÒª¸ü¸Äģʽ£¬µ«¸ü¸Äģʽ²»ÔÊÐíÆô¶¯Êý¾ÝÎļþ£¬Õâʱºò¾ÍÒªÓõ½mount²ÎÊýÀ´Æô¶¯¡£ÔÚmountģʽÏ£¬ÊäÈëalter database archivelog È»ºóд alter database open´ò¿ªÊý¾ÝÎļþ¡£
SQL> startup nomount
Æô¶¯ÊµÀý£¬Á¬¿ØÖÆÎļþÒ²²»´ò¿ª£¬ÀýÈç¿ØÖÆÎļþË𻵣¬¸ù±¾´ò²»¿ªµÄÇé¿ö£¬ÔÚÆô¶¯ÊµÀýÖ®ºó£¬ÖØÐ´´½¨¿ØÖÆÎļþ¡£
¹Ø±Õ
SQL> shutdown immediate
´ó¶àÊýÇé¿öÏÂʹÓá£ÆÈʹÿ¸öÓû§Ö´ÐÐÍ굱ǰSQLÓï¾äºó¶Ï¿ªÁ¬½Ó¡£
......
1,SELECT *,CASE OrderStatus WHEN 1 THEN 'δ´¦Àí' when 2 THEN 'Ëø¶¨' when
3 THEN 'ÒѳöƱ' ELSE '¹ýÆÚ' END
from dbo.T_OrderItem
2,
SELECT *,CAST(ROUND(CAST (HostWin AS FLOAT)/(HostWin+HostDraw+HostBear),2)*100 AS varchar)+'%' AS HostWinRate,
CAST(ROUND(CAST (HostDraw AS FLOAT)/(HostWin+HostDraw+HostBear),2)*100 AS varchar)+'%'AS HostDrawRate,
CAST(ROUND(CAST (HostBear AS FLOAT)/(HostWin+HostDraw+HostBear),2)*100 AS varchar)+'%' AS HostBearRate from V_DoubleBuy
?Convert.ToDateTime(row.ItemArray[0]) ......
SQL°æ±¾Éí·ÝÖ¤¸ñʽÑéÖ¤ 0Ϊ´íÎó£¬1ΪÕýÈ·
CREATE function [dbo].[IsID](@str nvarchar(18),@sex int)--´«ÈëÁ½¸ö±äÁ¿ Éí·ÝÖ¤ºÍÐÔ±ð(ÄÐ1Å®2)
returns bit
as
begin
declare @len int
declare @result bit
--set @result=0
set @len=len(@str)
if(@len!=18 and @len!=15)--³¤¶ÈÊÇ18λ»ò15λ
begin
set @result=0
end
else
if(case when @len=18 then left(@str,17) else @str end like '%[^0-9]%' )--15λÉí·Ý֤ҪΪÊý×Ö,18λÉí·Ý֤ǰ17λ±ØÐëÊÇÊý×Ö
begin
set @result=0
end
else
if(@len=18)--Èç¹ûÉí·ÝÖ¤ÊÇ18λ
begin--½øÐÐÂß¼¼ÆËã
declare @k int
declare @l nvarchar(11)
set @l='10X98765432'
set @k=
convert(int,left(@str,1))*7+
convert(int,substring(@str,2,1))*9+
convert(int,substring(@str,3,1))*10+
convert(int,substring(@str,4,1))*5+
convert(int,substring(@str,5,1))*8+
convert(int,substring(@str,6,1))*4+
&n ......