1)having
使用
:
select
classNo,count(*) from basGrade group by classNo having count(classNo)>=1
2)
行轉列
:
name
subject result
張三
語文
100
張三
英文
98
張三
數學
99
李四
語文
99
李四
數學
66
李四
英文
77
張三
語文
100
NULL
NULL NULL
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 aaTest) as a
select
@sql = @sql+' from aaTest group by name'
print
@sql
exec
(
@sql)
Name
英文
語文
數學
李四
77 99 66
張三
98 200 99
3)
游標的使用
declare
@userid varchar(20)
--
將
temp2
值賦給當前游標
declare
c_getdata cursor for
select
userid from temp2
--
打開當前游標
,
并將游標值賦給變量
open
c_getdata
fetch c_getdata into @userid
while(@@fetch_status = 0 )
begin
--
當前游標與數據庫中
temp
表結合
--
將結果導入結果數據庫
sysuserdept
表中
insert into sysuserdept(userid,deptid)
select @userid,deptid from temp
--
循環變量值更新
set @userid = null
fetch c_getdata into @userid
end
close
c_getdata
deallocate
c_getdata
4)
SQL2005
中异常处理
set
xact_abort on --
打開
try
功能
begin
try
begin tran
insert into orders()
commit tran
print 'commited'
end
try
begin
catch
rollback
print 'rolled back'
end
catch