请问高手,这个sql语句应该怎么写??
有一个表,time_id字段值可以重复,假设一共有10条记录,有3条记录的time_id字段值为100,7条记录的time_id字段值为200,现在我想读出time_id...
有一个表,time_id字段 值可以重复,假设一共有10条记录,有3条记录的time_id字段 值为100,7条记录的time_id字段 值为200,现在我想读出 time_id字段 值最大的所有记录,在上述例子中,就应该读出 7条记录,在写sql语句时候,不能用数字7(因为以后time_id字段 值最大的所有记录有几条是不确定的),请问怎么写?我自己写了如下语句,失败了
select * from [myTable] where [time_id]= ( select top 1 [time_id] from [myTable] order by [time_id] desc )
请问高手,这个sql语句应该怎么写?? 展开
select * from [myTable] where [time_id]= ( select top 1 [time_id] from [myTable] order by [time_id] desc )
请问高手,这个sql语句应该怎么写?? 展开
5个回答
展开全部
一楼二楼均正解!
再补充一个更简单的,但不一定好理解!
select top 1 * from [mytable] order by [time_id] DESC
取出的结果不是一条,而是七条,不信你试一下!
原理:如果第一排序有重复时,会将重复值全部显示,而不是因示只第一条!不信可以试一下的!也就是说,top 1 本来应该是显示一条的,但第一排序在重复时会显示出所有的,以致于很多前端设计时控制不到具体的条数,其实那种情况下加上第二排序就可以解决的!
http://hi.baidu.com/yuanbogg/blog/item/c29608f427572066dcc47473.html
再补充一个更简单的,但不一定好理解!
select top 1 * from [mytable] order by [time_id] DESC
取出的结果不是一条,而是七条,不信你试一下!
原理:如果第一排序有重复时,会将重复值全部显示,而不是因示只第一条!不信可以试一下的!也就是说,top 1 本来应该是显示一条的,但第一排序在重复时会显示出所有的,以致于很多前端设计时控制不到具体的条数,其实那种情况下加上第二排序就可以解决的!
http://hi.baidu.com/yuanbogg/blog/item/c29608f427572066dcc47473.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from myTable where time_id=(select max(time_id) from myTable) 或者 select * from myTable where time_id in (select max(time_id) from myTable)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from myTable
where [time_id]= ( select max ( [time_id]) time_id from myTable )
用上函数max ,我运行过,可以的,你试试
where [time_id]= ( select max ( [time_id]) time_id from myTable )
用上函数max ,我运行过,可以的,你试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改等号为In
无论一个查询的结果集是多少条,它都是一个行集,不能用一个值去与一个行集比较。
无论一个查询的结果集是多少条,它都是一个行集,不能用一个值去与一个行集比较。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from myTable where time_id=(select max(time_id) from myTable) 或者 select * from myTable where time_id in (select max(time_id) from myTable)
正解。
正解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询