当前位置: 代码迷 >> Sql Server >> MSSQL 有没有last函数解决办法
  详细解决方案

MSSQL 有没有last函数解决办法

热度:4   发布时间:2016-04-27 10:53:22.0
MSSQL 有没有last函数
就是主表,子表里有多条数,想拿最后一条

------解决方案--------------------
没有这个函数,
 需要通过关系型查询完成


SQL code
select * from 主表,子表 where 主表.id=子表的idand 子表的时间=(select max(时间字段) from 子表 as t /*这个 as t 不能省略*/where 子表的id=t.子表的id)
------解决方案--------------------
有.

参考:
LAST_VALUE (Transact-SQL)
返回 SQL Server 2012 中有序值集中的最后一个值。

地址:
http://technet.microsoft.com/zh-cn/hh231517(v=sql.100)
------解决方案--------------------
没有这个函数,用游标可以取出来


有排序字段直接

select top 1 * from tb order by 排序字段 desc
------解决方案--------------------
SQL code
declare @T table([id] int,[col] varchar(1))insert @Tselect 1,'a' union allselect 2,'b' union allselect 3,'c'declare @C table([id] int,[tid] int,[col] int)insert @Cselect 1,1,23 union allselect 2,1,14 union allselect 3,1,18 union allselect 4,2,12 union allselect 5,2,14 union allselect 6,2,15 union allselect 7,3,12 union allselect 8,3,12 union allselect 9,3,10SELECT  a.* ,b.colFROM    @T a        LEFT JOIN @C b ON a.id = b.tidWHERE   b.id = ( SELECT MAX(id) FROM @C WHERE  tid = b.tid)/*id          col  col----------- ---- -----------1           a    182           b    153           c    10*/
------解决方案--------------------
LAST(column)
返回在指定的域中最后一个记录的值(SQLServer2000 不支持)
  相关解决方案