面试题,找出每个产品的最新五个产品,还有其它方法吗 —— 游标加表变量
2011-09-22 11:05
183 查看
表t_c 和t_p如上图
select * from t_c
select * from t_p
查询方法一:
select * from (select row_number() over(partition by cid order by cdate desc) as rowid,* from t_p) T where T.rowid<=5
使用sql2005的特性 row_number() over()
方法二:
declare @temp table(id int,cid int,cdate datetime);
declare @id int;
declare cur cursor for
select cid from t_c
open cur
fetch next from cur Into @id
while @@fetch_status = 0
begin
insert into @temp
select top 5 * from t_p where cid = @id order by cdate desc
fetch next from cur into @id
end
close cur
deallocate cur
select * from @temp
利用游标和表变量
相关文章推荐
- 不用第三个变量就能交换两个变量值的五个方法
- 新浪微博 陈利人 面试题 给定k个数组,每个数组有k个整数。每个数组中选取一个整数,一共k个整数,取其和,一共可以得到k^k个和。给出方法,求得这k^k个和中,最小的k个。
- JavaScript通过this变量快速找出用户选中radio按钮的方法
- 金山面试题--四个线程a,b,c,d. 线程a,b对变量i加一. 线程c,d对变量i减去一.四个线程顺序执行, 每个线程每次只执行一次.i的初始值为0, 打印结果0 1 2 1 0 1 2 1 0 1
- 百度陆奇内部最新演讲:成为优秀工程师的五个方法
- 不用第三个变量就能交换两个变量值的五个方法
- 不用第三个变量就能交换两个变量值的五个方法
- 2017最新企业Shell面试题及企业运维实战共30+5道案例+变量符号
- Linux--记录每个用户登录后的IP信息,还有其它的操作信息
- 【Java面试题】26 多线程有几种实现方法?同步有几种实现方法? 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
- sql声明变量和获取最新插入行的ID方法
- 面试题:一个方法和类名相同,那这个是构造方法吗?哪些方式可以获取或设置成员变量的值?
- SQL Server遍历表中记录的2种方法(使用表变量和游标)
- 〔面试题〕无需额外变量交换两个变量的方法
- 【java】编写一个学生类,提供name,age,gender,phone,address,email成员变量, * 且为每个成员变量提供setter、getter方法。为学生类提供默认的构造器和带
- 找出变量做为左值的全部地方的方法
- delphi 摄像头视频图像捕捉 不用directshow来实现 还有其它什么方法吗?
- 面试题:在一个数组中除两个数字只出现1次外,其它数字都出现了2次, 要求尽快找出这两个数字
- Excel是最常用的办公软件。每个单元格都有唯一的地址表示。 比如:第4列表示为:“D”,第255列表示为“IU”。 事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。