在表中插入行

时间:2017-12-02 20:00:33

标签: sql select insert

我有一个包含三列的表:row,col,value。这是稀疏矩阵,具有以下值:

Row-1 : 0, 1, 10
Row-2 : 0, 3, 5

问题是,如何使用select语句循环以插入缺少值为0的行和列?

1 个答案:

答案 0 :(得分:1)

如果您有所有列和所有行的列表,则可以执行以下操作:

insert into sparse (row, col, value)
    select r.row, c.col, 0
    from (select distinct row from sparse) r cross join
         (select distinct col from sparse) c left join
         sparse s
         on s.row = r.row and s.col = c.col
    where s.row is null;

此版本假定每行和col至少有一个值。