Sql 从日期中找出最年轻的学生

Sql 从日期中找出最年轻的学生,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我有下表: name id DOB marks rk 2 2006-02-03 00:00:00.000 30 mk 3 2006-07-07 00:00:00.000 30 pk 4 2006-04-09 00:00:00.000 30 sk 5 2006-05-03 00:00:00.000 30 fk

我有下表:

name id DOB marks rk 2 2006-02-03 00:00:00.000 30 mk 3 2006-07-07 00:00:00.000 30 pk 4 2006-04-09 00:00:00.000 30 sk 5 2006-05-03 00:00:00.000 30 fk 6 2006-08-09 00:00:00.000 30 nk 7 2007-08-06 00:00:00.000 30 名称id DOB标记 rk 2 2006-02-03 00:00:00.000 30 mk 3 2006-07-07 00:00:00.000 30 pk 4 2006-04-09 00:00:00.000 30 sk 5 2006-05-03 00:00:00.000 30 fk 6 2006-08-09 00:00:00.000 30 nk 7 2007-08-06 00:00:00.000 30
我怎样才能找到最小的学生

看起来您只需要最新的出生日期(假设DOB是出生日期):

那么您的查询将是:

select name as youngestStudent, dob as dateOfBirth
from yourtable
where dob = (select max(dob) from yourtable)

您可以按出生日期降序对表进行排序,然后只筛选第一个结果,这在SQL Server中是可以完成的

select  top 1 *
from    yourTable
order by DOB desc

很简单。根据您给定的数据,“nk”是最年轻的学生,因此您可以使用以下查询:

    select * from yourtable
    where dob = (select max(dob) from yourtable)

什么数据库。?无论您是否使用Sql Server、Access、MySql、Oracle等,这都很重要,因为所有这些数据库在限制行方面的语法都略有不同:
TOP
vs
LIMIT
vs
OFFSET/FETCH
。您尝试过什么吗?将表作为文本(如您所做的)而不是图像发布,并将其正确格式化,不发布样本数据的图像。如果我们想设置测试或使用sqlfiddle,它迫使我们需要重新键入数据。他想要的是学生,而不仅仅是他们的dob。你是对的:)我发布的查询是按dob查找最年轻的学生,它可以很容易地用作选择姓名的条件。此查询将显示最年长的学生,而不是最年轻的学生!不是吗?@Md.SumanKabir是的,可能是。它在四月份被问到:)无论如何,为了使它与问题相匹配,我将更新它。
    select * from yourtable
    where dob = (select max(dob) from yourtable)