sql中的游标
declare @id varchar(10)
declare @nm varchar(10)
declare @table as table(emp varchar(10),empname varchar(10))
declare CurEmp cursor for select top 6 empid,empname from employee
open CurEmp
fetch next from CurEmp into @id,@nm
While @@fetch_status=0
begin
insert @table(emp,empname) values(@id,@nm)
fetch next from CurEmp into @id,@nm
end
close CurEmp
deallocate CurEmp
select * from @table
如果需要从某一结果集中逐一地读取一条记录,可以用游标实现,上面是个简单的例子
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
--行列转换 行转列
DROP TABLE t_change_lc;
CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);
INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal from dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, tru ......
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)
删除表:
Drop t ......
第二部分
1.所有男生的姓名、年龄:
Select Sname,Sage
from student;
2.所有年龄大于20,计算机科学系学生名单:
SELECT Sname
from Student
WHERE Sage>20 AND Sdept='CS';
3.成绩大于60的学生学号:
SELECT Sno
from SC
WHERE Grade>60;
4.成绩在70到80之间的学生学号:
SELECT Sno
from SC
......