首页 新闻 会员 周边 捐助

sqlserver数据库 取一定条件下第N行的值

1
[已解决问题] 解决于 2011-11-25 13:15

我的代码如下:

SELECT     TOP (1) photo
FROM         [select]
WHERE     (id NOT IN
                          (SELECT     TOP (8) id
                            FROM          [select] AS select_2
                            WHERE      (passed = 0)))

但是我现在想去到passed字段等于0的第9行的photo的值。怎么写啊 ??? 求高手帮忙,万分感谢。、!!

我的passed字段有两种值 1、0.

tie_v的主页 tie_v | 初学一级 | 园豆:195
提问于:2011-11-19 10:44
< >
分享
最佳答案
1
SELECT TOP 1 photo FROM [select] WHERE  id NOT IN (SELECT TOP (8) id FROM  [select] WHERE passed = 0) and passed=0
artwl | 专家六级 |园豆:16736 | 2011-11-19 12:12

你这个代码好使,太感谢你了。

tie_v | 园豆:195 (初学一级) | 2011-11-20 10:14
其他回答(3)
0

等于0的第九行,你是根据什么排序,不然你怎么知道第九行?

小小刀 | 园豆:1991 (小虾三级) | 2011-11-19 12:28

我的代码是取得除了前八行以外的第一条数据,那不就是第九行了, 就是当我前八条passed字段中有1时,他就直接取1那条了。

支持(0) 反对(0) tie_v | 园豆:195 (初学一级) | 2011-11-20 10:13
0

有个rownumber函数,你可以用这个判断是否是第九行。

悟行 | 园豆:12559 (专家六级) | 2011-11-19 13:49

谢谢 一楼的好使了 有时间我再试下你这个

支持(0) 反对(0) tie_v | 园豆:195 (初学一级) | 2011-11-20 10:15
0
SELECT * FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY passed ASC) AS RowNumber, *
FROM MyTable
WHERE passed = 0
) A
WHERE A.RowNumber = 9

试试上面的代码,WHERE 后是搜索条件,over后的是排序条件。

哈欠懒农 | 园豆:455 (菜鸟二级) | 2011-11-19 14:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册