SQL: select * into b from a where 1<>1
璇存槑錛氭嫹璐濊〃(鎷瘋礉鏁版嵁,婧愯〃鍚嶏細a 鐩爣琛ㄥ悕錛歜)
SQL: insert into b(a, b, c) select d,e,f from b;
璇存槑錛氭樉紺烘枃绔犮佹彁浜や漢鍜屾渶鍚庡洖澶嶆椂闂?nbsp;
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
璇存槑錛氬榪炴帴鏌ヨ(琛ㄥ悕1錛歛 琛ㄥ悕2錛歜)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
璇存槑錛氭棩紼嬪畨鎺掓彁鍓嶄簲鍒嗛挓鎻愰啋
SQL: select * from 鏃ョ▼瀹夋帓 where datediff('minute',f寮濮嬫椂闂?getdate())>5
璇存槑錛氫袱寮犲叧鑱旇〃錛屽垹闄や富琛ㄤ腑宸茬粡鍦ㄥ壇琛ㄤ腑娌℃湁鐨勪俊鎭?nbsp;
SQL:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )
璇存槑錛?-
SQL:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,'YYYY/MM') =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') || '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y,
WHERE X.NUM = Y.NUM 錛?錛?nbsp;
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B
WHERE A.NUM = B.NUM
璇存槑錛?-
SQL:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 緋誨悕縐?'"&strdepartmentname&"' and 涓撲笟鍚嶇О='"&strprofessionname&"' order by 鎬у埆,鐢熸簮鍦?楂樿冩繪垚緇?nbsp;
璇存槑錛?nbsp;
浠庢暟鎹簱涓幓涓騫寸殑鍚勫崟浣嶇數(shù)璇濊垂緇熻(鐢?shù)璇濊垂瀹氶璐虹數(shù)鍖栬偉娓呭崟涓や釜琛ㄦ潵婧愬Q?nbsp;
SQL:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC
FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration
FROM TELFEESTAND a, TELFEE b
WHERE a.tel = b.telfax) a
GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')
璇存槑錛氬洓琛ㄨ仈鏌ラ棶棰橈細
SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
璇存槑錛氬緱鍒拌〃涓渶灝忕殑鏈嬌鐢ㄧ殑ID鍙?nbsp;
SQL:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID
FROM Handle
WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
====================================
SQL璇彞鎶宸?br>1銆佷竴涓猄QL璇彞鐨勯棶棰?琛屽垪杞崲
select * from v_temp
涓婇潰鐨勮鍥劇粨鏋滃涓?
user_name role_name
-------------------------
緋葷粺綆$悊鍛?綆$悊鍛?
feng 綆$悊鍛?
feng 涓鑸敤鎴?
test 涓鑸敤鎴?
鎯蟲妸緇撴灉鍙樻垚榪欐牱:
user_name role_name
---------------------------
緋葷粺綆$悊鍛?綆$悊鍛?
feng 綆$悊鍛?涓鑸敤鎴?
test 涓鑸敤鎴?br>===================
create table a_test(name varchar(20),role2 varchar(20))
insert into a_test values('鏉?,'綆$悊鍝?)
insert into a_test values('寮?,'綆$悊鍝?)
insert into a_test values('寮?,'涓鑸敤鎴?)
insert into a_test values('甯?,'涓鑸敤鎴?)
create function join_str(@content varchar(100))
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(role2) from a_test where [name]=@content
select @str=right(@str,len(@str)-1)
return @str
end
go
--璋冪敤錛?br>select [name],dbo.join_str([name]) role2 from a_test group by [name]
--select distinct name,dbo.uf_test(name) from a_test
2銆佹眰鍔╋紒蹇熸瘮杈冪粨鏋勭浉鍚岀殑涓よ〃
緇撴瀯鐩稿悓鐨勪袱琛紝涓琛ㄦ湁璁板綍3涓囨潯宸﹀彸錛屼竴琛ㄦ湁璁板綍2涓囨潯宸﹀彸錛屾垜鎬庢牱蹇熸煡鎵句袱琛ㄧ殑涓嶅悓璁板綍錛?br>============================
緇欎綘涓涓祴璇曟柟娉曪紝浠巒orthwind涓殑orders琛ㄥ彇鏁版嵁銆?br>select * into n1 from orders
select * into n2 from orders
select * from n1
select * from n2
--娣誨姞涓婚敭錛岀劧鍚庝慨鏀筺1涓嫢騫插瓧孌電殑鑻ュ共鏉?br>alter table n1 add constraint pk_n1_id primary key (OrderID)
alter table n2 add constraint pk_n2_id primary key (OrderID)
select OrderID from (select * from n1
union
select * from n2) a group by OrderID having count(*) > 1
搴旇鍙互錛岃屼笖灝嗕笉鍚岀殑璁板綍鐨処D鏄劇ず鍑烘潵銆?br>涓嬮潰鐨勯傜敤浜庡弻鏂硅褰曚竴鏍風殑鎯呭喌錛?/p>
select * from n1 where orderid in
(
select OrderID from (select * from n1
union
select * from n2) a group by OrderID having count(*) > 1
)
鑷充簬鍙屾柟浜掍笉瀛樺湪鐨勮褰曟槸姣旇緝濂藉鐞嗙殑
--鍒犻櫎n1,n2涓嫢騫叉潯璁板綍
delete from n1 where orderID in ('10728','10730')
delete from n2 where orderID in ('11000','11001')
--*************************************************************
-- 鍙屾柟閮芥湁璇ヨ褰曞嵈涓嶅畬鍏ㄧ浉鍚?br>select * from n1 where orderid in
(
select OrderID from (select * from n1
union
select * from n2) a group by OrderID having count(*) > 1
)
union
--n2涓瓨鍦ㄤ絾鍦╪1涓笉瀛樼殑鍦?0728,10730
select * from n1 where OrderID not in (select OrderID from n2)
union
--n1涓瓨鍦ㄤ絾鍦╪2涓笉瀛樼殑鍦?1000,11001
select * from n2 where OrderID not in (select OrderID from n1)
3.
鍥涚鏂規(guī)硶鍙栬〃閲宯鍒癿鏉$邯褰曪細
1.
select top m * into 涓存椂琛?鎴栬〃鍙橀噺) from tablename order by columnname -- 灝唗op m絎旀彃鍏?br>set rowcount n
select * from 琛ㄥ彉閲?order by columnname desc
2.
select top n * from
(select top m * from tablename order by columnname) a
order by columnname desc
3.濡傛灉tablename閲屾病鏈夊叾浠杋dentity鍒楋紝閭d箞錛?br>select identity(int) id0,* into #temp from tablename
鍙杗鍒癿鏉$殑璇彞涓猴細
select * from #temp where id0 >=n and id0 <= m
濡傛灉浣犲湪鎵цselect identity(int) id0,* into #temp from tablename榪欐潯璇彞鐨勬椂鍊欐姤閿?閭f槸鍥犱負浣犵殑DB涓棿鐨剆elect into/bulkcopy灞炴ф病鏈夋墦寮瑕佸厛鎵ц錛?br>exec sp_dboption 浣犵殑DB鍚嶅瓧,'select into/bulkcopy',true
4.濡傛灉琛ㄩ噷鏈塱dentity灞炴э紝閭d箞綆鍗曪細
select * from tablename where identitycol between n and m
5.濡備綍鍒犻櫎涓涓〃涓噸澶嶇殑璁板綍錛?br>create table a_dist(id int,name varchar(20))
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
exec up_distinct 'a_dist','id'
select * from a_dist
create procedure up_distinct(@t_name varchar(30),@f_key varchar(30))
--f_key琛ㄧず鏄垎緄勫瓧孌碉箰鍗充富閸靛瓧孌?br>as
begin
declare @max integer,@id varchar(30) ,@sql varchar(7999) ,@type integer
select @sql = 'declare cur_rows cursor for select '+@f_key+' ,count(*) from ' +@t_name +' group by ' +@f_key +' having count(*) > 1'
exec(@sql)
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
select @type = xtype from syscolumns where id=object_id(@t_name) and name=@f_key
if @type=56
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+ @id
if @type=167
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+''''+ @id +''''
exec(@sql)
fetch cur_rows into @id,@max
end
close cur_rows
deallocate cur_rows
set rowcount 0
end
select * from systypes
select * from syscolumns where id = object_id('a_dist')
6.鏌ヨ鏁版嵁鐨勬渶澶ф帓搴忛棶棰橈紙鍙兘鐢ㄤ竴鏉¤鍙ュ啓錛?
CREATE TABLE hard (qu char (11) ,co char (11) ,je numeric(3, 0))
insert into hard values ('A','1',3)
insert into hard values ('A','2',4)
insert into hard values ('A','4',2)
insert into hard values ('A','6',9)
insert into hard values ('B','1',4)
insert into hard values ('B','2',5)
insert into hard values ('B','3',6)
insert into hard values ('C','3',4)
insert into hard values ('C','6',7)
insert into hard values ('C','2',3)
瑕佹眰鏌ヨ鍑烘潵鐨勭粨鏋滃涓嬶細
qu co je
----------- ----------- -----
A 6 9
A 2 4
B 3 6
B 2 5
C 6 7
C 3 4
灝辨槸瑕佹寜qu鍒嗙粍錛屾瘡緇勪腑鍙杍e鏈澶х殑鍓?浣嶏紒錛?br>鑰屼笖鍙兘鐢ㄤ竴鍙ql璇彞錛侊紒錛?br>select * from hard a where je in (select top 2 je from hard b where a.qu=b.qu order by je)
7.姹傚垹闄ら噸澶嶈褰曠殑sql璇彞錛?
鎬庢牱鎶婂叿鏈夌浉鍚屽瓧孌電殑綰綍鍒犻櫎錛屽彧鐣欎笅涓鏉°?br>渚嬪錛岃〃test閲屾湁id,name瀛楁
濡傛灉鏈塶ame鐩稿悓鐨勮褰?鍙暀涓嬩竴鏉★紝鍏朵綑鐨勫垹闄ゃ?br>name鐨勫唴瀹逛笉瀹氾紝鐩稿悓鐨勮褰曟暟涓嶅畾銆?br>鏈夋病鏈夎繖鏍風殑sql璇彞錛?br>==============================
A:涓涓畬鏁寸殑瑙e喅鏂規(guī)錛?/p>
灝嗛噸澶嶇殑璁板綍璁板叆temp1琛?
select [鏍囧織瀛楁id],count(*) into temp1 from [琛ㄥ悕]
group by [鏍囧織瀛楁id]
having count(*)>1
2銆佸皢涓嶉噸澶嶇殑璁板綍璁板叆temp1琛?
insert temp1
select [鏍囧織瀛楁id],count(*) from [琛ㄥ悕]
group by [鏍囧織瀛楁id]
having count(*)=1
3銆佷綔涓涓寘鍚墍鏈変笉閲嶅璁板綍鐨勮〃錛?br>select * into temp2 from [琛ㄥ悕]
where 鏍囧織瀛楁id in(select 鏍囧織瀛楁id from temp1)
4銆佸垹闄ら噸澶嶈〃:
delete [琛ㄥ悕]
5銆佹仮澶嶈〃錛?br>insert [琛ㄥ悕]
select * from temp2
6銆佸垹闄や復鏃惰〃:
drop table temp1
drop table temp2
================================
B:
create table a_dist(id int,name varchar(20))
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
exec up_distinct 'a_dist','id'
select * from a_dist
create procedure up_distinct(@t_name varchar(30),@f_key varchar(30))
--f_key琛ㄧず鏄垎緄勫瓧孌碉箰鍗充富閸靛瓧孌?br>as
begin
declare @max integer,@id varchar(30) ,@sql varchar(7999) ,@type integer
select @sql = 'declare cur_rows cursor for select '+@f_key+' ,count(*) from ' +@t_name +' group by ' +@f_key +' having count(*) > 1'
exec(@sql)
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
select @type = xtype from syscolumns where id=object_id(@t_name) and name=@f_key
if @type=56
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+ @id
if @type=167
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+''''+ @id +''''
exec(@sql)
fetch cur_rows into @id,@max
end
close cur_rows
deallocate cur_rows
set rowcount 0
end
select * from systypes
select * from syscolumns where id = object_id('a_dist')