如何使用这些空值的值填充空值

时间:2017-10-26 09:30:51

标签: sql sql-server

如何使用低于这些空值的值填充空值?

示例,我有一个这样的表:

Mat   Name
123   Jerry
Null  Mary
Null  Sam
456   Matt
Null  Harry
Null  Jin

但它应该是这样的:

Mat   Name 
123   Jerry
123   Mary
122   Sam
456   Matt
456   Harry
456   Jin

我可以在select语句中实现这一点,还是必须使用函数或存储过程?

2 个答案:

答案 0 :(得分:1)

我认为你的意思是

UIView.animate(withDuration: 0.2) {
    view.transform = CGAffineTransform.identity.scaledBy(x: 0.9, y: 0.9)
}

答案 1 :(得分:1)

如果您能够在表格中添加ID列(如果您还没有),则此查询应该有效

declare @tbl as table (
    id int
    ,mat int
    ,name varchar(15)
)

insert into @tbl values (1,123, 'Jerry')
insert into @tbl values (2,NULL, 'Marry')
insert into @tbl values (3,NULL, 'Sam')
insert into @tbl values (4,456, 'Matt')
insert into @tbl values (5,NULL, 'Harry')
insert into @tbl values (6,NULL, 'Jin')

SELECT
    id
    ,CASE WHEN
        mat IS NULL THEN
            (SELECT TOP 1 mat FROM @tbl WHERE id<T.id AND mat IS NOT NULL ORDER BY id DESC)
        ELSE mat
    END AS mat
    ,name
FROM @tbl T