WITH tb AS
( SELECT 123 AS 编号, '2014-01-11' AS 生效时间, 1020 价格, 'h001' 合同号 FROM DUAL UNION ALL
 SELECT 256 AS 编号, '2014-01-09' AS 生效时间, 1010 价格, 'h001' 合同号 FROM DUAL UNION ALL
 SELECT 478 AS 编号, '2014-01-15' AS 生效时间, 1015 价格, 'h588' 合同号 FROM DUAL UNION ALL
 SELECT 564 AS 编号, '2014-01-15' AS 生效时间, 1018 价格, 'h001' 合同号 FROM DUAL UNION ALL
 SELECT 544 AS 编号, '2014-01-14' AS 生效时间, 1025 价格, 'h588' 合同号 FROM DUAL UNION ALL
 SELECT 856 AS 编号, '2014-01-12' AS 生效时间, 1022 价格, 'h588' 合同号 FROM DUAL
)SELECT 编号,
       生效时间,
       nvl(LEAD(生效时间) OVER(PARTITION BY 合同号 ORDER BY 生效时间),'2014-12-31') 生效时间 ,
       价格,
       合同号
  FROM TB