Sql 从日期中找出最年轻的学生
我有下表: 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 30Sql 从日期中找出最年轻的学生,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
我怎样才能找到最小的学生 看起来您只需要最新的出生日期(假设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
vsLIMIT
vsOFFSET/FETCH
。您尝试过什么吗?将表作为文本(如您所做的)而不是图像发布,并将其正确格式化,不发布样本数据的图像。如果我们想设置测试或使用sqlfiddle,它迫使我们需要重新键入数据。他想要的是学生,而不仅仅是他们的dob。你是对的:)我发布的查询是按dob查找最年轻的学生,它可以很容易地用作选择姓名的条件。此查询将显示最年长的学生,而不是最年轻的学生!不是吗?@Md.SumanKabir是的,可能是。它在四月份被问到:)无论如何,为了使它与问题相匹配,我将更新它。
select * from yourtable
where dob = (select max(dob) from yourtable)