查看: 1173|回复: 10
|
一个问题考一考大家
[复制链接]
|
|
有一个问题考一考大家:
Select the 4th highest salary from table below WITHOUT using inner query
Table tbl_salary
staffID salary
1 2270
2 5500
3 3750
4 1780
5 3300
有什么意见吗? |
|
|
|
|
|
|
|
发表于 11-3-2006 09:18 AM
|
显示全部楼层
我会用一个最笨的方法。
- Dim n
- n = 0
- ....
- SQL = select salary from tb1_salary
- ...
- Do while not rs.eof
- If n = 4 then
- Response.write("XXX")
- Else
- do nothing
- End If
- n = n + 1
- loop
复制代码 |
|
|
|
|
|
|
|
楼主 |
发表于 11-3-2006 04:26 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 12-3-2006 12:36 PM
|
显示全部楼层
select top 4 salary from tbl_salary order by salary dsc
然后拿出第4个record即可 |
|
|
|
|
|
|
|
发表于 12-3-2006 05:38 PM
|
显示全部楼层
MYSQL:
SELECT * FROM `TABLE1` ORDER BY `salary` DESC LIMIT 3 , 1
其他的 SQL 也有類似 LIMIT 的東西.
* 改成 DESC 了
[ 本帖最后由 flashang 于 13-3-2006 09:11 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 12-3-2006 07:48 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 14-3-2006 12:32 AM
|
显示全部楼层
是咯,我现在才知道有limit,但是ms sql server 不能用。。应该是ASC啊,问题要第四个result,所以应该LIMIT 3, 1
SELECT * FROM `student` LIMIT 20, 10
This will return 10 records from 21st record. That is from 21st record to 30th record. Here is the output |
|
|
|
|
|
|
|
发表于 14-3-2006 09:08 AM
|
显示全部楼层
MS SQL 可以用 TOP
SELECT TOP 4 FROM TABLE ORDER BY XXX DESC |
|
|
|
|
|
|
|
发表于 14-3-2006 10:40 PM
|
显示全部楼层
原帖由 石破天金 于 14-3-2006 12:32 AM 发表
是咯,我现在才知道有limit,但是ms sql server 不能用。。应该是ASC啊,问题要第四个result,所以应该LIMIT 3, 1
SELECT * FROM `student` LIMIT 20, 10
This will return 10 records from 21st record. ...
應該是 desc
1st 5500
2nd 3750
3rd 3300
4th 2270
5th 1780 |
|
|
|
|
|
|
|
发表于 16-3-2006 04:29 PM
|
显示全部楼层
那MS SQL 可以做类似MYSQL 的LIMIT 4,5 酱的STATEMENT吗?也就是从第4行的RECORD算起 |
|
|
|
|
|
|
|
发表于 17-3-2006 11:23 AM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|