]]>鐢⊿QL Server 2005 瀹炵幇緇撴灉闆嗗垎欏?http://www.tkk7.com/kylixlu/archive/2008/01/20/176624.html闄嗘槺鐩?/dc:creator>闄嗘槺鐩?/author>Sun, 20 Jan 2008 12:21:00 GMThttp://www.tkk7.com/kylixlu/archive/2008/01/20/176624.htmlhttp://www.tkk7.com/kylixlu/comments/176624.htmlhttp://www.tkk7.com/kylixlu/archive/2008/01/20/176624.html#Feedback0http://www.tkk7.com/kylixlu/comments/commentRss/176624.htmlhttp://www.tkk7.com/kylixlu/services/trackbacks/176624.html浠嬬粛
鏈変簡SQL Server 2005涔嬪悗錛屾垜浠嬌鐢ㄥ垎欏墊煡璇㈡瘮鑰佺増鏈鏄撳浜嗐傚湪鏈枃涓紝鎴戝皢涓昏鐢ㄥ埌鐨勬槸NorthWind鏁版嵁搴擄紝鎵浠ヤ綘涔熷彲浠ヤ豢鐓х紪鍐欐垜鎵鍒椾婦鐨勮寖渚嬨傛垜灝介噺浣夸緥瀛愮畝鍗曞寲;鍥犱負浠諱綍澶嶆潅鐨勪笢瑗塊兘浼氶兘浼氶犳垚娣鋒穯銆傛垜灝嗕粠“浼犵粺”鐨勬柟娉曠潃鎵嬶紝姣斿錛歋ELECT, TOP錛岀劧鍚庢參鎱㈣繘鍏ュ叿浣撶殑SQL Server 2005 鍒嗛〉鐨勪緥瀛愩?br />
鑳屾櫙
鎴戝父甯鎬細琚棶鍒拌繖鏍風殑涓涓棶棰樻垨鑰呰涓緋誨垪榪欐牱鐨勯棶棰橈紝“浣犲浣曞湪SQL涓繘琛屽垎欏碉紵鍦ㄦ湁寰堝涓褰曠殑鎯呭喌涓嬶紝浣犲張濡備綍鍋氾紝姣斿10000涓褰曟垨鑰呮洿澶氬憿錛?br />
鎴戞濈儲鐫絳旀銆傛洿紜垏鍦拌錛屾垜鑰冭檻浜嗘洿澶氱殑闂騫朵笖鎴戦兘璁ょ湡鍘繪濊冿紝“榪欏繀瀹氭槸涓涓櫘綃囩殑闂錛屾瘡涓涓紑鍙戜漢鍛樺繀欏誨鐞嗘垨鑰呰瑙e喅鐨勩傚叿鏈夐潪甯稿ぇ鐨勬暟鎹簱闆嗙殑宸ヤ綔鍜屽垎欏靛ぇ灝忔槸鎬庢牱鐨勶紵浠庡縐嶈〃鎵寰楀埌鐨勭粨鏋滈泦鍙堟槸濡備綍錛?#8221;
鍥犳錛屾垜鍐沖畾鍏蜂綋緇撳悎SQL Server 2005鏉ョ爺絀惰繖浜涢棶棰樸備笅闈㈢殑鏂規(guī)硶鏄嚦浠婁負姝㈡渶瀹規(guī)槗鐨勶紝寤鴻閲囩撼銆備絾鏄繖鏄潪甯哥綍瑙佺殑錛屽茍闈炴槗浜嬨?br />
select * from mytable
Where ID between20and30
SQL Top
SQL Top錛堜粠緇撴灉闆嗚繑鍥炶褰曪級闈炲父鍠勪簬浠庣粨鏋滈泦鐨勬瘡涓熬閮ㄨ繑鍥炲ぇ閲忕殑璁板綍銆?br />
涓嬮潰鐨勪緥瀛愰氳繃鍛戒護qty鑾峰緱浜嗗墠10鍚嶉【瀹€傚湪璁哄潧涓婅繖鏄竴涓潪甯告櫘楠楃殑闂銆傚敖綆OP涔熷彲浠ユ媺鍔ㄤ竴瀹氱櫨鍒嗘瘮鐨勮褰曪紝浣嗘槸鎴戜滑榪欓噷涓嶈璁恒?br />
selecttop10 * from customers -- This is a very basic example.
selectTOP10 Customers.CustomerID, Customers.CompanyName, count(*) OrderCount
from Customers innerjoin Orders on Orders.CustomerID = Customers.CustomerID
GROUPBY Customers.CustomerID, Customers.CompanyName
ORDERBY OrderCount DESC
榪欐槸寰堟湁鐢ㄧ殑銆傚綋浣犺鎶婅褰曚粠11鎷夊埌20鏃訛紝浣犲氨鍙互浣跨敤涓存椂琛ㄣ?br />
-- SELECT First 30 records in to Temp table
SELECTTOP30 * INTO
#TEMP
from Customers
ORDERBY CompanyName ASC
--Select Bottom 10 records in another temp table
SELECTTOP10 *
INTO #TEMP2
from #Temp
ORDERBY CompanyName DESC
-- GET THE RECORDS
SELECT * FROM #TEMP2
榪欏灝戞暟鍓嶅嚑涓〉闈㈡垨鑰呭墠鍑犱釜鐢ㄦ埛鏄鎯╃綒銆傚鏋滄嫢鏈夎繖鏍風殑鐢ㄦ埛錛屼粬浠兂浠庝竴欏典竴欏典箣鍚庤繑鍥為〉闈紝浣犲皢浠ヤ嬌1000鏉¤褰曡繑鍥?0鏉℃潵緇撴潫錛岃繖鏄潪甯鎬綆鏁堢殑銆備綘鍙互鍦ㄧ涓涓復鏃惰〃涓唴緗竴涓韓浠斤紝鐒跺悗鐢ㄤ竴涓猄ELECT澹版槑鏉ヤ綔鏇夸唬銆?br />
TOP鐨勬浛浠?br />
鏈変竴涓繖鏍風殑TOP鏇夸唬錛屽畠浣跨敤鐨勬槸rowcount錛堣璁℃暟錛夈備嬌鐢ㄨ璁℃暟瑕佸皬蹇冦傚鏋滃畠涓嶅叧闂殑璇濓紝灝嗕綘灝嗛櫡鍏ュ悇縐嶅悇鏍風殑鍥板銆?br />
SETrowcount10
SELECT * from Customers
ORDERBY CompanyName
WITH, ROW_NUMBER 錛堣鏁幫級and OVER
榪欏SQL Server 2005鏉ヨ闈炲父鏂伴矞騫朵笖鐪嬩笂鍘婚潪甯告湁鐢ㄣ備笅闈竴涓緥瀛愭樉紺轟粠涓涓粨鏋滈泦寰楀埌20鑷?9鏉¤褰曘傚垰寮濮嬶紝鎴戞湁涓鐐規(guī)儕濂囷紝浣嗘槸鎴戞祻瑙堜簡鏌ヨ鍣ㄥ悗鎴戝彂鐜板畠鏄姝ょ畝鍗曘?br />
With Cust AS
( SELECT CustomerID, CompanyName,
ROW_NUMBER() OVER (orderby CompanyName) as RowNumber
FROM Customers )
select *
from Cust
Where RowNumber Between20and30
SQL Server 2005鐨刉ITH鎸囧畾浜嗕竴涓復鏃跺懡鍚嶇殑緇撴灉錛屽緢鍍廠QL Server浠ュ墠鐗堟湰涓殑涓存椂琛ㄣ備絾鏄紝杈撳叆閮ㄥ垎鏄疪OW_NUMBER鍜孫VER澹版槑錛屽畠鏍規(guī)嵁鍏徃鐨勫悕縐板湪姣忕粍涓垱寤鴻鏁般傝繖灝卞儚閫氳繃鍛戒護鏉℃枃鍚戜復鏃惰〃娣誨姞涓涓韓浠界瀛愩?br />
鎴戝笇鏈涗綘璧炴垚鎴戠殑鐪嬫硶銆傚鏋滀笉錛岃繍琛屼唬鐮佸茍鏌ョ湅緇撴灉闆嗐傚澶ц〃鏉ヨ閫熷害鐪熺殑闈炲父蹇?琛ㄧ殑閫熷害瓚呰繃250錛?00鏉¤褰曪紝瀵規(guī)鎴戠暀涓嬩簡娣卞埢鐨勫嵃璞°?br />
涓璧鋒暣鍚堝埌鍌ㄥ瓨榪囩▼涓?br />
鐜板湪鎴戜滑鎶婂畠涓璧鋒暣鍚堝埌鍌ㄥ瓨榪囩▼錛岃繖涓偍瀛樿繃紼嬫垜浠彲浠ラ氳繃搴旂敤紼嬪簭鏉ヤ嬌鐢ㄣ傛垜涓嶆墦綆楀睍紺?NET Datagrid鎴栬呯浉浼肩殑鎺т歡錛屽洜涓烘槸鏈枃鎺㈣鑼冨洿涔嬪銆備笅闈㈢湅鍒扮殑鍌ㄥ瓨榪囩▼浣跨敤浜嗙伒媧葷殑欏甸潰澶у皬鍜岄〉闈㈡暟鐩紝鎵浠ヤ綘鍙互闅忔剰鍦伴夋嫨浠諱綍欏甸潰銆傝繖鏍鳳紝濡傛灉浣犳兂璺寵繃鍓嶅崄欏靛幓瀵繪壘鏌愪竴鏉¤褰曞氨闈炲父鏂逛究浜嗐備笅闈㈢殑渚嬪瓙鏄粠絎竴欏靛紑濮嬪垎欏電殑錛岃屼笉鏄粠絎?欏碉紝浣嗕篃鍙互闅忔剰鏇存敼銆?br />
CREATEPROC GetCustomersByPage
@PageSize int, @PageNumber int
AS
Declare @RowStart int
Declare @RowEnd int
if @PageNumber > 0
Begin
SET @PageNumber = @PageNumber -1
SET @RowStart = @PageSize * @PageNumber + 1;
SET @RowEnd = @RowStart + @PageSize - 1 ;
With Cust AS
( SELECT CustomerID, CompanyName,
ROW_NUMBER() OVER (orderby CompanyName) as RowNumber
FROM Customers )
select *
from Cust
Where RowNumber >= @RowStart and RowNumber <= @RowEnd end
END
榪愯榪欎釜紼嬪簭錛屼粎闇鎸囧畾欏甸潰澶у皬鍜岄〉鏁扮洰(GetCustomersByPage, @PageSize and @PageNumber)錛屼唬鐮佸涓嬶細
exec GetCustomersByPage 10, 1
]]>SQLServer鍜孫racle甯哥敤鍑芥暟瀵規(guī)瘮http://www.tkk7.com/kylixlu/archive/2007/12/24/169942.html闄嗘槺鐩?/dc:creator>闄嗘槺鐩?/author>Mon, 24 Dec 2007 01:59:00 GMThttp://www.tkk7.com/kylixlu/archive/2007/12/24/169942.htmlhttp://www.tkk7.com/kylixlu/comments/169942.htmlhttp://www.tkk7.com/kylixlu/archive/2007/12/24/169942.html#Feedback0http://www.tkk7.com/kylixlu/comments/commentRss/169942.htmlhttp://www.tkk7.com/kylixlu/services/trackbacks/169942.html
1.緇濆鍊?
S:select abs(-1) value
O:select abs(-1) value from dual
2.鍙栨暣(澶?
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.鍙栨暣錛堝皬錛?
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.鍙栨暣錛堟埅鍙栵級
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from dual
5.鍥涜垗浜斿叆
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from dual 1.2346
6.e涓哄簳鐨勫箓
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from dual 2.71828182
7.鍙杄涓哄簳鐨勫鏁?
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from dual; 1
8.鍙?0涓哄簳瀵規(guī)暟
S:select log10(10) value 1
O:select log(10,10) value from dual; 1
9.鍙栧鉤鏂?
S:select SQUARE(4) value 16
O:select power(4,2) value from dual 16
10.鍙栧鉤鏂規(guī)牴
S:select SQRT(4) value 2
O:select SQRT(4) value from dual 2
11.姹備換鎰忔暟涓哄簳鐨勫箓
S:select power(3,4) value 81
O:select power(3,4) value from dual 81
12.鍙栭殢鏈烘暟
S:select rand() value
O:select sys.dbms_random.value(0,1) value from dual;
13.鍙栫鍙?
S:select sign(-8) value -1
O:select sign(-8) value from dual -1
14.鍦嗗懆鐜?
S:SELECT PI() value 3.1415926535897931
O:涓嶇煡閬?
15.sin,cos,tan 鍙傛暟閮戒互寮у害涓哄崟浣?
渚嬪錛歴elect sin(PI()/2) value 寰楀埌1錛圫QLServer錛?
16.Asin,Acos,Atan,Atan2 榪斿洖寮у害
17.寮у害瑙掑害浜掓崲(SQLServer錛孫racle涓嶇煡閬?
DEGREES錛氬姬搴?銆夎搴?
RADIANS錛氳搴?銆夊姬搴?
鏁板奸棿姣旇緝錛?br />
18. 姹傞泦鍚堟渶澶у?
S:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select greatest(1,-2,4,3) value from dual
19. 姹傞泦鍚堟渶灝忓?
S:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select least(1,-2,4,3) value from dual
20.濡備綍澶勭悊null鍊?F2涓殑null浠?0浠f浛)
S:select F1,IsNull(F2,10) value from Tbl
O:select F1,nvl(F2,10) value from Tbl
21.姹傚瓧絎﹀簭鍙?
S:select ascii('a') value
O:select ascii('a') value from dual
22.浠庡簭鍙鋒眰瀛楃
S:select char(97) value
O:select chr(97) value from dual
23.榪炴帴
S:select '11'+'22'+'33' value
O:select CONCAT('11','22')銆銆33 value from dual
23.瀛愪覆浣嶇疆 --榪斿洖3
S:select CHARINDEX('s','sdsq',2) value
O:select INSTR('sdsq','s',2) value from dual
23.妯$硦瀛愪覆鐨勪綅緗?--榪斿洖2,鍙傛暟鍘繪帀涓棿%鍒欒繑鍥?
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle娌″彂鐜幫紝浣嗘槸instr鍙互閫氳繃絎洓涓弬鏁版帶鍒跺嚭鐜版鏁?
select INSTR('sdsfasdqe','sd',1,2) value from dual 榪斿洖6
24.姹傚瓙涓?
S:select substring('abcd',2,2) value
O:select substr('abcd',2,2) value from dual
25.瀛愪覆浠f浛 榪斿洖aijklmnef
S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual
26.瀛愪覆鍏ㄩ儴鏇挎崲
S:娌″彂鐜?
O:select Translate('fasdbfasegas','fa','鎴? ) value from dual
27.闀垮害
S:len,datalength
O:length
28.澶у皬鍐欒漿鎹?lower,upper
29.鍗曡瘝棣栧瓧姣嶅ぇ鍐?
S:娌″彂鐜?
O:select INITCAP('abcd dsaf df') value from dual
30.宸﹁ˉ絀烘牸錛圠PAD鐨勭涓涓弬鏁頒負絀烘牸鍒欏悓space鍑芥暟錛?
S:select space(10)+'abcd' value
O:select LPAD('abcd',14) value from dual
31.鍙寵ˉ絀烘牸錛圧PAD鐨勭涓涓弬鏁頒負絀烘牸鍒欏悓space鍑芥暟錛?
S:select 'abcd'+space(10) value
O:select RPAD('abcd',14) value from dual
32.鍒犻櫎絀烘牸
S:ltrim,rtrim
O:ltrim,rtrim,trim
33. 閲嶅瀛楃涓?
S:select REPLICATE('abcd',2) value
O:娌″彂鐜?
34.鍙戦煶鐩鎬技鎬ф瘮杈?榪欎袱涓崟璇嶈繑鍥炲間竴鏍鳳紝鍙戦煶鐩稿悓)
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual
SQLServer涓敤SELECT DIFFERENCE('Smithers', 'Smythers') 姣旇緝soundex鐨勫樊
榪斿洖0-4錛?涓哄悓闊籌紝1鏈楂?
鏃ユ湡鍑芥暟錛?br />
35.緋葷粺鏃墮棿
S:select getdate() value
O:select sysdate value from dual
36.鍓嶅悗鍑犳棩
鐩存帴涓庢暣鏁扮浉鍔犲噺
37.姹傛棩鏈?
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from dual
select to_char(sysdate,'yyyy-mm-dd') value from dual
38.姹傛椂闂?
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from dual
鍙傛暟---------------------------------涓嬭〃闇瑕佽ˉ鍏?
year yy, yyyy
quarter qq, q (瀛e害)
month mm, m (m O鏃犳晥)
dayofyear dy, y (O琛ㄦ槦鏈?
day dd, d (d O鏃犳晥)
week wk, ww (wk O鏃犳晥)
weekday dw (O涓嶆竻妤?
Hour hh,hh12,hh24 (hh12,hh24 S鏃犳晥)
minute mi, n (n O鏃犳晥)
second ss, s (s O鏃犳晥)
millisecond ms (O鏃犳晥)
----------------------------------------------
40.褰撴湀鏈鍚庝竴澶?
S:涓嶇煡閬?
O:select LAST_DAY(sysdate) value from dual
41.鏈槦鏈熺殑鏌愪竴澶╋紙姣斿鏄熸湡鏃ワ級
S:涓嶇煡閬?
O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
42.瀛楃涓茶漿鏃墮棿
S:鍙互鐩存帴杞垨鑰卻elect cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
43.姹備袱鏃ユ湡鏌愪竴閮ㄥ垎鐨勫樊錛堟瘮濡傜錛?
S:select datediff(ss,getdate(),getdate()+12.3) value
O:鐩存帴鐢ㄤ袱涓棩鏈熺浉鍑忥紙姣斿d1-d2=12.3錛?
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
44.鏍規(guī)嵁宸兼眰鏂扮殑鏃ユ湡錛堟瘮濡傚垎閽燂級
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL;
45.姹備笉鍚屾椂鍖烘椂闂?
S:涓嶇煡閬?
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;