注册 登录
编程论坛 SQL Server论坛

怎么用一个语句查询一个表的两条数据啊~~~SOS宅急送

ylof1986 发布于 2010-08-16 14:50, 726 次点击
SELECT     * form
                          (SELECT     TOP (1) *
                            FROM          datab
                            ORDER BY Date_Recorded) AS datab1
UNION ALL
SELECT     * form
                          (SELECT     TOP (1) *
                            FROM          datab AS datab_1
                            ORDER BY Date_Recorded DESC) AS datab2

这个语句有问题哦,就想查一个表的某个时间段的第一条和最后一条,谁能帮帮我啊,郁闷死啦

[ 本帖最后由 ylof1986 于 2010-8-16 14:53 编辑 ]
3 回复
#2
aei1352010-08-16 22:00
SELECT     TOP (1) *
                            FROM          datab
                            ORDER BY Date_Recorded
union all
SELECT     TOP (1) *
                            FROM          datab AS datab_1
                            ORDER BY Date_Recorded DESC
这样可以的吧

你的表没什么主键吗?Date_Recorded每行一样呢,还是不一样呢?
#3
cnfarer2010-08-17 06:29
Union中最多只能有一个order by!
select * from datab where date_record=(select max(date_record) from datab)
union
select * from datab where date_record=(select min(date_record) from datab)

如果有重复记录,也可加一个top 1
#4
aei1352010-08-17 10:16
经测试这样是对的,不过还是得看主键吧,3楼也是对的,不过没一定顺序的话,结果不一样
SELECT     * from
                          (SELECT     TOP 1 *
                            FROM          datab
                            ORDER BY Date_Recorded) AS datab1
UNION ALL
SELECT     * from
                          (SELECT     TOP 1 *
                            FROM          datab AS datab_1
                            ORDER BY Date_Recorded DESC) AS datab2
1