锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
璇存槑錛氭嫹璐濊〃(鎷瘋礉鏁版嵁,婧愯〃鍚嶏細a 鐩爣琛ㄥ悕錛歜)
SQL: insert into b(a, b, c) select d,e,f from b;
璇存槑錛氭樉紺烘枃绔犮佹彁浜や漢鍜屾渶鍚庡洖澶嶆椂闂?br>
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
璇存槑錛氫袱寮犲叧鑱旇〃錛屽垹闄や富琛ㄤ腑宸茬粡鍦ㄥ壇琛ㄤ腑娌℃湁鐨勪俊鎭?
SQL:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )
璇存槑錛?#8211;
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 錛?錛?
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) X.STOCK_ONHAND ) B
WHERE A.NUM = B.NUM
璇存槑錛?#8211;
SQL:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 緋誨悕縐?’”&strdepartmentname&”‘ and 涓撲笟鍚嶇О=’”&strprofessionname&”‘ order by 鎬у埆,鐢熸簮鍦?楂樿冩繪垚緇?
璇存槑錛?
浠庢暟鎹簱涓幓涓騫寸殑鍚勫崟浣嶇數璇濊垂緇熻(鐢佃瘽璐瑰畾棰濊春鐢靛寲鑲ユ竻鍗曚袱涓〃鏉ユ簮錛?
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鍙?
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)
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?#8211;
1.璇存槑錛氬鍒惰〃(鍙鍒剁粨鏋?婧愯〃鍚嶏細a 鏂拌〃鍚嶏細b)
SQL: select * into b from a where 11
2.璇存槑錛氭嫹璐濊〃(鎷瘋礉鏁版嵁,婧愯〃鍚嶏細a 鐩爣琛ㄥ悕錛歜)
SQL: insert into b(a, b, c) select d,e,f from a;
3.璇存槑錛氭樉紺烘枃绔犮佹彁浜や漢鍜屾渶鍚庡洖澶嶆椂闂?
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
4.璇存槑錛氬榪炴帴鏌ヨ(琛ㄥ悕1錛歛 琛ㄥ悕2錛歜)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUTER JOIN b ON a.a = b.c
5.璇存槑錛氭棩紼嬪畨鎺掓彁鍓嶄簲鍒嗛挓鎻愰啋
SQL: select * from 鏃ョ▼瀹夋帓 where datediff(’minute’,f寮濮嬫椂闂?getdate())>5
6.璇存槑錛氫袱寮犲叧鑱旇〃錛屽垹闄や富琛ㄤ腑宸茬粡鍦ㄥ壇琛ㄤ腑娌℃湁鐨勪俊鎭?
SQL:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )
璇存槑錛?#8211;
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 錛?錛?
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) X.STOCK_ONHAND ) B
WHERE A.NUM = B.NUM
璇存槑錛?#8211;
SQL:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 緋誨悕縐?’”&strdepartmentname&”‘ and 涓撲笟鍚嶇О=’”&strprofessionname&”‘ order by 鎬у埆,鐢熸簮鍦?楂樿冩繪垚緇?
7.璇存槑錛?
浠庢暟鎹簱涓幓涓騫寸殑鍚勫崟浣嶇數璇濊垂緇熻(鐢佃瘽璐瑰畾棰濊春鐢靛寲鑲ユ竻鍗曚袱涓〃鏉ユ簮錛?
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’)
8.璇存槑錛氬洓琛ㄨ仈鏌ラ棶棰橈細
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 …..
9.璇存槑錛氬緱鍒拌〃涓渶灝忕殑鏈嬌鐢ㄧ殑ID鍙?
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)
9.SQL璇彞鎶宸?br>9.1銆佷竴涓猄QL璇彞鐨勯棶棰?琛屽垪杞崲
select * from v_temp
涓婇潰鐨勮鍥劇粨鏋滃涓?
user_name role_name
鈥斺斺斺斺斺斺斺?
緋葷粺綆$悊鍛?綆$悊鍛?br>feng 綆$悊鍛?br>feng 涓鑸敤鎴?br>test 涓鑸敤鎴?br>鎯蟲妸緇撴灉鍙樻垚榪欐牱:
user_name role_name
鈥斺斺斺斺斺斺斺斺?br>緋葷粺綆$悊鍛?綆$悊鍛?br>feng 綆$悊鍛?涓鑸敤鎴?br>test 涓鑸敤鎴?br>===================
create table a_test(name varchar(20),role2 varchar(20))
insert into a_test values(’鏉?#8217;,'綆$悊鍝?#8217;)
insert into a_test values(’寮?#8217;,'綆$悊鍝?#8217;)
insert into a_test values(’寮?#8217;,'涓鑸敤鎴?#8217;)
insert into a_test values(’甯?#8217;,'涓鑸敤鎴?#8217;)
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
9.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)
9.3銆佸洓縐嶆柟娉曞彇琛ㄩ噷n鍒癿鏉$邯褰曪細
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 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’)
9.4.鏌ヨ鏁版嵁鐨勬渶澶ф帓搴忛棶棰橈紙鍙兘鐢ㄤ竴鏉¤鍙ュ啓錛?br>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
鈥斺斺?#8211; 鈥斺斺?#8211; 鈥?#8211;
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)
9.5.姹傚垹闄ら噸澶嶈褰曠殑sql璇彞錛?br>鎬庢牱鎶婂叿鏈夌浉鍚屽瓧孌電殑綰綍鍒犻櫎錛屽彧鐣欎笅涓鏉°?br>渚嬪錛岃〃test閲屾湁id,name瀛楁
濡傛灉鏈塶ame鐩稿悓鐨勮褰?鍙暀涓嬩竴鏉★紝鍏朵綑鐨勫垹闄ゃ?br>name鐨勫唴瀹逛笉瀹氾紝鐩稿悓鐨勮褰曟暟涓嶅畾銆?br>鏈夋病鏈夎繖鏍風殑sql璇彞錛?br>==============================
A:涓涓畬鏁寸殑瑙e喅鏂規錛?/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’)
10.1. 琛屽垪杞崲–鏅?
鍋囪鏈夊紶瀛︾敓鎴愮嘩琛?CJ)濡備笅
Name Subject Result
寮犱笁 璇枃 80
寮犱笁 鏁板 90
寮犱笁 鐗╃悊 85
鏉庡洓 璇枃 85
鏉庡洓 鏁板 92
鏉庡洓 鐗╃悊 82
鎯沖彉鎴?br>濮撳悕 璇枃 鏁板 鐗╃悊
寮犱笁 80 90 85
鏉庡洓 85 92 82
declare @sql varchar(4000)
set @sql = ’select Name’
select @sql = @sql + ‘,sum(case Subject when ”’+Subject+”’ then Result end) [’+Subject+’]’
from (select distinct Subject from CJ) as a
select @sql = @sql+’ from test group by name’
exec(@sql)
10.2. 琛屽垪杞崲–鍚堝茍
鏈夎〃A,
id pid
1 1
1 2
1 3
2 1
2 2
3 1
濡備綍鍖栨垚琛˙:
id pid
1 1,2,3
2 1,2
3 1
鍒涘緩涓涓悎騫剁殑鍑芥暟
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=”
select @str=@str+’,'+cast(pid as varchar) from 琛ˋ where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go
–璋冪敤鑷畾涔夊嚱鏁板緱鍒扮粨鏋?br>select distinct id,dbo.fmerg(id) from 琛ˋ
10.3. 濡備綍鍙栧緱涓涓暟鎹〃鐨勬墍鏈夊垪鍚?
鏂規硶濡備笅錛氬厛浠嶴YSTEMOBJECT緋葷粺琛ㄤ腑鍙栧緱鏁版嵁琛ㄧ殑SYSTEMID,鐒跺悗鍐峉YSCOLUMN琛ㄤ腑鍙栧緱璇ユ暟鎹〃鐨勬墍鏈夊垪鍚嶃?br>SQL璇彞濡備笅錛?br>declare @objid int,@objname char(40)
set @objname = ‘tablename’
select @objid = id from sysobjects where id = object_id(@objname)
select ‘Column_name’ = name from syscolumns where id = @objid order by colid
鏄笉鏄お綆鍗曚簡錛?鍛靛懙 涓嶈繃緇忓父鐢ㄩ樋.
10.4. 閫氳繃SQL璇彞鏉ユ洿鏀圭敤鎴風殑瀵嗙爜
淇敼鍒漢鐨?闇瑕乻ysadmin role
EXEC sp_password NULL, ‘newpassword’, ‘User’
濡傛灉甯愬彿涓篠A鎵цEXEC sp_password NULL, ‘newpassword’, sa
10.5. 鎬庝箞鍒ゆ柇鍑轟竴涓〃鐨勫摢浜涘瓧孌典笉鍏佽涓虹┖錛?
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE=’NO’ and TABLE_NAME=tablename
10.6. 濡備綍鍦ㄦ暟鎹簱閲屾壘鍒板惈鏈夌浉鍚屽瓧孌電殑琛紵
a. 鏌ュ凡鐭ュ垪鍚嶇殑鎯呭喌
SELECT b.name as TableName,a.name as columnname
From syscolumns a INNER JOIN sysobjects b
ON a.id=b.id
AND b.type=’U’
AND a.name=’浣犵殑瀛楁鍚嶅瓧’
b. 鏈煡鍒楀悕鏌ユ墍鏈夊湪涓嶅悓琛ㄥ嚭鐜拌繃鐨勫垪鍚?br>Select o.name As tablename,s1.name As columnname
From syscolumns s1, sysobjects o
Where s1.id = o.id
And o.type = ‘U’
And Exists (
Select 1 From syscolumns s2
Where s1.name = s2.name
And s1.id s2.id
)
10.7. 鏌ヨ絎瑇xx琛屾暟鎹?
鍋囪id鏄富閿細
select *
from (select top xxx * from yourtable) aa
where not exists(select 1 from (select top xxx-1 * from yourtable) bb where aa.id=bb.id)
濡傛灉浣跨敤娓告爣涔熸槸鍙互鐨?br>fetch absolute [number] from [cursor_name]
琛屾暟涓虹粷瀵硅鏁?
10.8. SQL Server鏃ユ湡璁$畻
a. 涓涓湀鐨勭涓澶?br>SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
b. 鏈懆鐨勬槦鏈熶竴
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
c. 涓騫寸殑絎竴澶?br>SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
d. 瀛e害鐨勭涓澶?br>SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
e. 涓婁釜鏈堢殑鏈鍚庝竴澶?br>SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
f. 鍘誨勾鐨勬渶鍚庝竴澶?br>SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
g. 鏈湀鐨勬渶鍚庝竴澶?br>SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
h. 鏈湀鐨勭涓涓槦鏈熶竴
select DATEADD(wk, DATEDIFF(wk,0,
dateadd(dd,6-datepart(day,getdate()),getdate())
), 0)
i. 鏈勾鐨勬渶鍚庝竴澶?br>SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))銆?
11.1.鑾峰彇琛ㄧ粨鏋刐鎶?’sysobjects’ 鏇挎崲 鎴?‘tablename’ 鍗沖彲]
SELECT CASE IsNull(I.name, ”)
When ” Then ”
Else ‘*’
End as IsPK,
Object_Name(A.id) as t_name,
A.name as c_name,
IsNull(SubString(M.text, 1, 254), ”) as pbc_init,
T.name as F_DataType,
CASE IsNull(TYPEPROPERTY(T.name, ‘Scale’), ”)
WHEN ” Then Cast(A.prec as varchar)
ELSE Cast(A.prec as varchar) + ‘,’ + Cast(A.scale as varchar)
END as F_Scale,
A.isnullable as F_isNullAble
FROM Syscolumns as A
JOIN Systypes as T
ON (A.xType = T.xUserType AND A.Id = Object_id(’sysobjects’) )
LEFT JOIN ( SysIndexes as I
JOIN Syscolumns as A1
ON ( I.id = A1.id and A1.id = object_id(’sysobjects’) and (I.status & 0×800) = 0×800 AND A1.colid 0 then ‘√’ else ” end) N’涓婚敭’,
b.name N’綾誨瀷’,
a.length N’鍗犵敤瀛楄妭鏁?#8217;,
COLUMNPROPERTY(a.id,a.name,’PRECISION’) as N’闀垮害’,
isnull(COLUMNPROPERTY(a.id,a.name,’Scale’),0) as N’灝忔暟浣嶆暟’,
(case when a.isnullable=1 then ‘√’else ” end) N’鍏佽絀?#8217;,
isnull(e.text,”) N’榛樿鍊?#8217;,
isnull(g.[value],”) AS N’瀛楁璇存槑’
FROM syscolumns a
left join systypes b
on a.xtype=b.xusertype
inner join sysobjects d
on a.id=d.id and d.xtype=’U’ and d.name’dtproperties’
left join syscomments e
on a.cdefault=e.id
left join sysproperties g
on a.id=g.id AND a.colid = g.smallid
order by object_name(a.id),a.colorder
11.3.蹇熻幏鍙栬〃test鐨勮褰曟繪暟[瀵瑰ぇ瀹歸噺琛ㄩ潪甯告湁鏁圿
蹇熻幏鍙栬〃test鐨勮褰曟繪暟:
select rows from sysindexes where id = object_id(‘test’) and indid in (0,1)
update 2 set KHXH=(ID+1)\2 2琛岄掑緙栧彿
update [23] set id1 = ‘No.’+right(’00000000′+id,6) where id not like ‘No%’ //閫掑
update [23] set id1= ‘No.’+right(’00000000′+replace(id1,’No.’,”),6) //琛ヤ綅閫掑
delete from [1] where (id%2)=1
濂囨暟
鏇挎崲琛ㄥ悕瀛楁
update [1] set domurl = replace(domurl,’/upload/Imgswf/’,'/upload/Photo/’) where domurl like ‘%/upload/Imgswf/%’
鎴綅
SELECT LEFT(琛ㄥ悕, 5)