0

我有一张这样的桌子:

id               package               start_date            option
1                342323                2012-02-02            1
2                3423333               2012-02-06            1
3                552234                2012-02-14            2

我只想选择(top 1)具有minimum start_date.

我试过where start_date = MIN(start_date)了,但它不起作用。

我正在使用 SQL Server 2008。

4

8 回答 8

5
select top 1 * from table
order by start_date
于 2012-04-12T06:42:15.980 回答
1

对于 Sql 服务器

 select top 1 * from tbl_name order by start_date

对于 MySQL

 select * from tbl_name order by start_date asc limit 1
于 2012-04-12T06:41:29.650 回答
1

尝试:

where start_date = (select min(start_date) from yourtable)
于 2012-04-12T06:41:45.527 回答
1
SELECT * FROM myTable
ORDER BY start_date ASC
LIMIT 1
于 2012-04-12T06:42:13.797 回答
1
SELECT * from Yourtable 
WHERE start_date = (SELECT (Min(yt1.Start_Date) FROM YourTable as yt1)
于 2012-04-12T06:42:15.433 回答
1

对于 MSSQL

select top 1 * from your_table order by start_date asc
于 2012-04-12T06:42:33.800 回答
0

这个特定于 SQL Server 的查询应该为您提供所需的数据。尝试使用这个:

select top 1 * from tbl_name order by start_date asc
于 2012-04-12T06:43:49.427 回答
0

您还可以使用:

;With top_record as 
(
 SELECt *
  ,row_number() OVER (order by start_date ASC) as row
  FROM yourtable
)
SELECT * from top_record WHERE row = 1

然后,这将使您可以灵活地通过使用 DENSE_RANK / RANK 而不是 ROW_NUMBER() 来确定如何处理平局

于 2012-04-12T07:19:27.240 回答