锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
set @ct = getdate()
---
--sql 璇彞
---
select datediff(ms, @ct ,getdate()) as '鏌ヨ鏃墮棿錛堟縐掞級'
]]>Connect By瀛愬彞閫掑綊鏌ヨ涓鑸敤浜庝竴涓〃緇存姢鏍戝艦緇撴瀯鐨勫簲鐢ㄣ?br />
鍒涘緩紺轟緥琛細
CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0
);
鎻掑叆嫻嬭瘯鏁版嵁錛?br />
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
浠嶳oot寰鏍戞湯姊㈤掑綊
select * from TBL_TEST
start with id=1
connect by prior id = pid
浠庢湯姊㈠線鏍慠OOT閫掑綊
select * from TBL_TEST
start with id=5
connect by prior pid = id
=====
瀵逛簬oracle榪涜綆鍗曟爲鏌ヨ(閫掑綊鏌ヨ)
DEPTID PAREDEPTID NAME
NUMBER NUMBER CHAR (40 Byte)
閮ㄩ棬id 鐖墮儴闂╥d(鎵灞為儴闂╥d) 閮ㄩ棬鍚嶇О
閫氳繃瀛愯妭鐐瑰悜鏍硅妭鐐硅拷鏈?
Sql浠g爜
1.select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid
Sql浠g爜
1.select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid
select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid
閫氳繃鏍硅妭鐐歸亶鍘嗗瓙鑺傜偣.
Sql浠g爜
1.select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid
Sql浠g爜
1.select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid
select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid
鍙氳繃level 鍏抽敭瀛楁煡璇㈡墍鍦ㄥ眰嬈?
Sql浠g爜
1.select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid
Sql浠g爜
1.select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid
select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid
鍐嶆澶嶄範涓涓?start with connect by 鐨勭敤娉曪紝 start with 鍚庨潰鎵璺熺殑灝辨槸灝辨槸閫掑綊鐨勭瀛愩?nbsp;
閫掑綊鐨勭瀛愪篃灝辨槸閫掑綊寮濮嬬殑鍦版柟 connect by 鍚庨潰鐨?prior" 濡傛灉緙虹渷錛氬垯鍙兘鏌ヨ鍒扮鍚堟潯浠剁殑璧峰琛岋紝騫朵笉榪涜閫掑綊鏌ヨ錛?nbsp;
connect by prior 鍚庨潰鎵鏀劇殑瀛楁鏄湁鍏崇郴鐨勶紝瀹冩寚鏄庝簡鏌ヨ鐨勬柟鍚戙?nbsp;
緇冧範錛?nbsp;閫氳繃瀛愯妭鐐硅幏寰楅《鑺傜偣
Sql浠g爜
1.select FIRST_VALUE(deptid) OVER (ORDER BY LEVEL DESC ROWS UNBOUNDED PRECEDING) AS firstdeptid from persons.dept start with deptid=76 connect by prior paredeptid=deptid
====榪欑鏂規硶鍙槸褰撹〃閲屽氨鏈変竴棰楁爲,澶氭5鏍戞庝箞鍔烇紵
.澹版槑錛欽avaEye鏂囩珷鐗堟潈灞炰簬浣滆咃紝鍙楁硶寰嬩繚鎶ゃ傛病鏈変綔鑰呬功闈㈣鍙笉寰楄漿杞姐?nbsp;
]]>
銆銆/* 榪斿洖瀛楃琛ㄨ揪寮忎腑鏈宸︿晶瀛楃鐨凙SCII浠g爜鍊?nbsp;*/
銆銆select Ascii(‘a‘) --a:97,A:65
銆銆/* 灝嗘暣鏁癆SCII浠g爜杞崲涓哄瓧絎?nbsp;*/
銆銆select Char(97)--97:a,65:A
銆銆/* 榪斿洖琛ㄨ揪寮忎腑鎸囧畾瀛楃鐨勫紑濮嬩綅緗?nbsp;*/
銆銆select Charindex(‘b‘,‘abcdefg‘,5)
銆銆/* 浠ユ暣鏁拌繑鍥炰袱涓瓧絎﹁〃杈懼紡鐨凷OUNDEX鍊間箣宸?nbsp;*/
銆銆select Difference(‘bet‘,‘bit‘)--3
銆銆/* 榪斿洖瀛楃琛ㄨ揪寮忔渶宸︿晶鎸囧畾鏁扮洰鐨勫瓧絎?nbsp;*/
銆銆select Left(‘abcdefg‘,3)--abc
銆銆/* 榪斿洖緇欏畾瀛楃涓茶〃杈劇殑瀛楃鏁?nbsp;*/
銆銆select Len(‘abcdefg‘)--7
銆銆/* 榪斿洖灝嗗ぇ鍐欏瓧絎﹁漿鎹負灝忓瓧絎︾殑瀛楃琛ㄨ揪寮?nbsp;*/
銆銆select Lower(‘ABCDEFG‘)--abcdefg
銆銆/* 榪斿洖鍒犻櫎浜嗗墠瀵肩┖鏍間箣鍚庡瓧絎﹁〃杈懼紡 */
銆銆select Ltrim(‘銆銆 abcdefg‘)--abcdefg
銆銆/* 榪斿洖鍏鋒湁緇欏畾鐨勬暣鏁頒唬鐮佺殑UNICODE瀛楃 */
銆銆select Nchar(65)--A
銆銆/* 榪斿洖鎸囧畾琛ㄨ揪寮忎腑妯″紡絎竴嬈″嚭鐜扮殑寮濮嬩綅緗?nbsp;*/
銆銆select Patindex(‘%_cd%‘,‘abcdefg‘)--2
銆銆/* 榪斿洖涓烘垚涓烘湁鏁堢殑SQL SERVER鍒嗛殧鏍囪瘑絎﹁屾坊鍔犱簡鍒嗛殧絎︾殑UNICODE瀛楃涓?nbsp;*/
銆銆select Quotename(‘create table‘)
銆銆/* 鐢ㄧ涓変釜琛ㄨ揪寮忔浛鎹㈢涓涓〃杈懼紡涓嚭鐜扮殑絎簩涓〃杈懼紡 */
銆銆select Replace(‘abcdefg‘,‘cd‘,‘xxx‘)--abxxxefg
銆銆/* 鎸夋寚瀹氭鏁伴噸澶嶈〃杈懼紡 */
銆銆select Replicate(‘abc|‘,4)--abc|abc|abc|abc|
銆銆/* 榪斿洖瀛楃琛ㄨ揪寮忕殑閫嗗悜琛ㄨ揪寮?nbsp;*/
銆銆select Reverse(‘abc‘)--cba
銆銆/* 榪斿洖瀛楃琛ㄨ揪寮忓彸渚ф寚瀹氭暟鐩殑瀛楃 */
銆銆select Right(‘abcd‘,3)--bcd
銆銆/* 榪斿洖鎴柇浜嗘墍鏈夊熬闅忕┖鏍間箣鍚庣殑瀛楃琛ㄨ揪寮?nbsp;*/
銆銆select Rtrim(‘abcd銆銆銆 ‘)--abcd
銆銆/* 榪斿洖鐢卞洓涓瓧絎﹁〃杈劇殑SOUNDEX浠g爜 */
銆銆select Soundex(‘abcd‘)--A120
銆銆/* 榪斿洖鐢遍噸澶嶇┖鏍肩粍鎴愮殑瀛楃涓?nbsp;*/
銆銆select Space(10)--[銆銆]
銆銆/* 榪斿洖浠庨粯璁よ〃杈捐漿鎹㈣屾潵鐨勫瓧絎︿覆 */
銆銆select Str(100)--[銆銆銆銆 100]
銆銆/*銆 */
銆銆select Str(100,3)--[100]
銆銆/*銆 */
銆銆select Str(14.4444,5,4)--[14.44]
銆銆/* 鍒犻櫎鎸囧畾闀垮害鐨勫瓧絎?騫跺湪鎸囧畾鐨勮搗鐐瑰鎻掑叆鍙︿竴緇勫瓧絎?nbsp;*/
銆銆select Stuff(‘abcdefg‘,2,4,‘xxx‘)--axxxfg
銆銆/* 榪斿洖瀛楃琛ㄨ揪寮?浜岃繘鍒?鏂囨湰琛ㄨ揪寮忔垨鍥懼儚琛ㄨ揪鐨勪竴閮ㄥ垎 */
銆銆select Substring(‘abcdefg‘,2,3)--bcd
銆銆/* 榪斿洖琛ㄨ揪絎竴涓瓧絎︾殑UNICODE鏁存暟鍊?nbsp;*/
銆銆select Unicode(‘a‘)--97
銆銆/* 榪斿洖灝嗗皬鍐欏瓧絎﹁漿鎹負澶у啓瀛楃鐨勫瓧絎﹁〃杈懼紡 */
銆銆select Upper(‘a‘)--‘A‘
]]>
]]>
select count(*) from TSPRO_SALESROOM_STOCKIN_MAIN where CREATE_DATE>'2011-02-01' and CREATE_DATE<='2011-02-28' and pro_type=2
SELECT pro_type,
[1] AS JAN,
[2] AS FEB,
[3] AS MAR,
[4] AS APR
from (
select pro_type,DATEPART(MM,create_date) AS MON
from TSPRO_SALESROOM_STOCKIN_MAIN where CREATE_DATE>'2011-01-20' and CREATE_DATE<='2011-03-09'
)s
PIVOT
(
COUNT(MON) FOR MON IN ([1],[2],[3],[4])
)AS p
]]>
]]>
瀵逛簬SQL Server 2005 鏁版嵁搴撹岃█錛屽嚱鏁頒笌瀛樺偍榪囩▼鍦ㄨ娉曟柟闈㈡槸鏈夊緢澶х殑鐩稿悓鐐癸紝
鏈澶х殑涓嶅悓灝辨槸鍑芥暟鏈夎繑鍥炲鹼紝鐩存帴浣跨敤returns ,鑰屽瓨鍌ㄨ繃紼嬪垯浣跨敤output鏉ュ0鏄庤緭鍑哄彉閲?br />
涓銆佷笅闈㈠厛璇存槑涓嬶紝濡備綍鍒涘緩鍑芥暟
1銆佸垱寤烘病鏈夎繑鍥炲間笌娌℃湁鍙傛暟鐨勫嚱鏁?br />
CREATE FUNCTION my_function()
AS
BEGIN
DECLARE @variable varchar(255) --澹版槑瀛楃鍨嬪彉閲?/span>
DECLARE @variable int --澹版槑鏁村艦鍨嬪彉閲?/span>
(do something)
SET @variable = '12345' --瀵瑰彉閲弙ariable璧嬪?/span>
END
2銆佸垱寤烘病鏈夎繑鍥炲兼湁鍙傛暟鐨勫嚱鏁?br />
CREATE FUNCTION my_function(@user_Name varchar(128),@password int(6))
AS
BEGIN
DECLARE @variable_1 varchar(255) --澹版槑瀛楃鍨嬪彉閲?/span>
(do something)
SET @variable_1 = @user_Name + convert(varchar(255),@password) --灝嗗彉閲廆user_Name涓嶡password榪炴帴璧嬬粰@variable_1錛屽叾涓璫onvert()鍑芥暟鏄皢int鍨嬭漿涓簐archar鍨?/span>
END
3銆佸垱寤烘湁榪斿洖鍊間笌鏈夊弬鏁扮殑鍑芥暟
CREATE FUNCTION my_function(@user_Name varchar(128),@password int(6))
returns varchar(255)--璁劇疆榪斿洖鍊鹼紝璁頒綇鏄痳eturns 鑰屼笉鏄痳eturn
AS
BEGIN
DECLARE @result varchar(5)
DECLARE @fagle varchar(5)
SET @result = select users.user_Name from USERS as users where users.user_Name = @user_Name and users.password = @password
IF @result = ''
BEGIN
SET @fagle = 'NO'
END
ELSE
BEGIN
SET @falge = 'YES'
END
return @result --榪斿洖緇撴灉
END
浜屻佸垹闄や竴涓嚱鏁拌娉?br />
DROP FUNCTION my_function
涓夈佹墽琛屼竴涓嚱鏁拌娉?br />
select dbo.my_function() --鏍規嵁鏈夋病鍙傛暟鏉ュ鐞?/span>
go
--娉細鍦⊿QL Server 2005 涓紝鏈夊唴閮ㄥ嚱鏁頒笌澶栭儴鍑芥暟錛屾暟鎹簱緋葷粺鑷甫鍑芥暟錛屽sum()錛宑ount()絳夌瓑錛岃繖浜涚О涓哄唴閮ㄥ嚱鏁幫紝鑰屾垜浠嚜瀹氫箟鐨勫嚱鏁扮О涓哄閮ㄥ嚱鏁般?/span>
--鍦ㄦ墽琛屽嚱鏁拌娉曚腑錛屼篃鏈変簺鍖哄埆錛屽鎵ц鍐呴儴鍑芥暟錛歴elect sum(total) from 錛岄偅涔堟墽琛屽閮ㄥ嚱鏁板垯闇瑕佸湪鍑芥暟鍚嶅墠鍔燿bo. + 鑷畾涔夊嚱鏁板悕錛屽
--select dbo.my_function()
--go
鍥涖佷笅闈㈡彁渚涗簩涓緥瀛?br />
1銆佹棩鏈熷垽鏂紝鍒ゆ柇浼犺繘鏉ョ殑鏃ユ湡鏄惁鍦ㄤ笂涓湀鏃ュ埌鏈湀鏃ヤ箣闂?br />
--璇鋒敞鎰廲onvert()鍑芥暟鐨勭敤娉?/span>
create function isNewContract(@date varchar(32))
returns varchar(32)
AS
begin
declare @begin_time varchar(32)
declare @end_time varchar(32)
declare @temp varchar(4)
declare @result varchar(32)
declare @month varchar(2)
set @begin_time=convert(varchar,DATEPART(year, getdate())) + '-'
set @end_time=convert(varchar,DATEPART(year, getdate())) + convert(varchar, DATEPART(month, getdate())) + convert(varchar, '14')
set @temp=convert(varchar(2),(month(getDate())-1 ))
if(@temp < 10 )
begin
set @begin_time = @begin_time + convert(varchar(1),'0') + @temp + '-' + convert(varchar, '15')
end
if(@date >= @begin_time and @date <= @end_time)
begin
set @result = '鏄?/span>'
end
else
begin
set @result = @begin_time
end
return @result
end
2銆佹煡璇㈠鏉¤褰曞悎騫舵垚涓鏉¤褰曡繑鍥烇紝騫跺啓鍏XECL琛ㄤ腑錛岃繘琛屽垎琛屾崲琛屾樉紺猴紝鍏朵腑浣跨敤娓告爣榪涜寰幆澶勭悊
--鍦ㄦ暟鎹簱涓紝EXECL榛樿鎹㈣絎CSII鐮佷負'10',鍦ㄥ悎騫跺瓧絎︿覆涔嬪墠錛岄渶瑕佸厛杞負EXECL璇嗗埆鐨勬崲琛岀錛屽叿浣撲嬌鐢╟hat()鍐呴儴鍑芥暟澶勭悊
create function getExportReportCollect(@projectId int ,@month varchar(64))
returns varchar(4096) --璁劇疆榪斿洖鍊?/span>
AS
begin
declare @num varchar(2)
declare @end varchar(10)
declare @Result varchar(4096) --鐢ㄤ簬榪斿洖鏌ヨ緇撴灉
declare city_cursor cursor for --澹版槑娓告爣鍙橀噺
select reported.id
from dbo.Investment_Budget_Reported as reported
left join dbo.Investment_Budget_Contract as con
on reported.contractId = con.id
where reported.[month] = @month and reported.projectId = @projectId
set @Result=''
set @num = '1'
set @end = '10' --瀵煎叆EXECL琛ㄤ腑錛屾崲琛岀鐨凙CSII鐮?/span>
declare @Field int --澹版槑涓存椂瀛樻斁CityID鐨勫彉閲?/span>
open city_cursor --鎵撳紑娓告爣
fetch next from city_cursor into @Field --灝嗗疄闄匢D璧嬬粰鍙橀噺
while(@@fetch_status = 0) --寰幆寮濮?/span>
begin
if((select [content] from dbo.Investment_Budget_Reported where id = @Field )is not null)
BEGIN
if(@Result = '')
select @Result = @Result + @num + '銆?/span>' + [content] from dbo.Investment_Budget_Reported where id = @Field
else
select @Result = @Result + @num + '銆?/span>' + [content] from dbo.Investment_Budget_Reported where id = @Field
set @Result = @Result + char(@end) --璁╂崲琛岀杞負EXECL璁よ瘑鐨勬崲琛岀
set @num = @num + 1
END
fetch next from city_cursor into @Field --涓嬩竴涓猺eportId
end
close city_cursor --鍏抽棴娓告爣
deallocate city_cursor --閲婃斁娓告爣寮曠敤
return @Result
end
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/zhdd1234/archive/2009/10/27/4734789.aspx
]]>
]]>
with temp as
( select row_number() over(order by cityID) as rownum,cityName from city )
select * from temp where rownum between 10 and 20
go
瑙i噴:
1 姝ゆ柟娉曟妸鎷彿閲岀殑鏌ヨ緇撴灉鏀懼埌鍙橀噺:temp 閲岄潰( 鎴戜篃涓嶇‘瀹氭槸涓嶆槸鍙橀噺), 騫剁敤row_number() 鍑芥暟榪涜涓涓鍙瘋窡韙? 鍐嶇敤over 鍑芥暟榪涜涓涓垪鐨勬帓搴忚鍒? 鏄繖蹇呴』鐨?, 騫舵寚瀹氬垪鍚嶄負'rownum'
2 绱ф帴鐫鍦ㄤ笅闈㈢殑璇彞鍙互瀵?nbsp;'rownum' 榪涜涓涓寚瀹氳鍙風殑鏌ヨ
3 姝ゆ壒璇彞鎵ц瀹屾瘯鍚? 鍙橀噺:temp 閲婃斁
鏂規硶2:
select identity(int,1,1) as rownum, cityName into #temp from city
select * from #temp where rownum between 10 and 20
go
瑙i噴:
姝ゆ柟娉曡窡涓婇潰鐨勫樊涓嶅鐨勬剰鎬? 鍙笉榪囨妸 row_number() 鍑芥暟鎹㈡垚浜?nbsp;identity() 鍑芥暟
騫舵妸緇撴灉闆嗘斁鍦ㄤ竴涓復鏃惰〃閲岄潰, 褰撴壒璇彞鎵ц瀹屾瘯, 姝や復鏃惰〃榪樺彲浠ヤ嬌鐢?nbsp;
]]>
1銆?/span>select power(10,3)寰楀埌1000
2銆?/span>select cast(1000+33 as varchar錛?nbsp;灝?000杞崲綾誨瀷
3銆?/span>select right(100033,3) 浠庡彸杈瑰彇3涓瓧絎﹀緱鍒?33 灝?鏍煎紡鍖栧悓涓?nbsp;select right(cast(power(10,3) as varchar)+33,3)
]]>
select a.[id],a.mark from
(
select [page].[id],100 as mark from [page] where [page].[url] like '%baidu%'
union
select [page].[id],50 as mark from [page] where [page].[title] like '%baidu%'
union
select [page].[id],10 as mark from [page] where [page].[body] like '%baidu%'
) as a order by mark desc
鐢╱nion 瀹炵幇鑱斿悎鏌ヨ錛屽湪姣忎釜鏌ヨ璇彞涓畾涔変竴涓復鏃跺彉閲弇ark 騫剁粰mark璧嬪鹼紝鍦ㄦ渶鍚庣殑杈撳嚭鏃墮噰鐢╩ark鏉ユ帓搴忥紝榪欐牱瀹炵幇錛岄潪甯哥畝鍗曪紝鎴戞劅瑙夎繖棰樻洿澶氳冪爺鎴戜滑鐨勭紪紼嬫濇兂銆?
]]>
]]>
]]>
select * from tablename where t_id=(select trunc(dbms_random.value(min(鏉′歡),max(鏉′歡))) from tablename;
select * from dept where did=(select trunc(dbms_random.value(min(rownum),max(rownum))) from dept);
--鏌ヨN鏉¢殢鏈鴻褰曚笂鏉?/strong>
select * frmo (select * from tablename order by sys_guid()) where rownum<N
select * from (select * from dept order by sys_guid()) where rownum < 5;
--鏌ヨ鍑鴻〃涓璛鏉′腑浠嶯鍒癕鏉$壒瀹氳褰曚笂鏉ワ紙鍒嗛〉鏌ヨ錛?/strong>
select * from (select rownum r,t.* from tablename t where rownum<X) ss where ss.r>N and ss.r <=M
select * from (select rownum r, t.* from dept t where rownum<6) ss where ss.r > 2 and ss.r <= 10
]]>