我正在尝试更新我的日期字段 表结构如下:
AsyncTask
如何更新前10个不同日期的记录,后10个不同日期的记录等等?
答案 0 :(得分:1)
UPDATE tbl t
SET "date" = date '2016-11-14' + sub.rn::int / 10 -- integer division
FROM (
SELECT id, row_number() OVER (ORDER BY id) AS rn
FROM tbl
) sub
WHERE t.id = sub.id;
子查询计算无间隙行号,因为您的问题中没有任何内容表明id
实际上保证没有间隙。
您只需向实际integer
添加date
即可添加天数。 (在我的第一个版本中忘记了演员int
。)
使用timestamp
代替:
timestamp '2016-11-14' + interval '1 day' * (sub.rn / 10)
答案 1 :(得分:0)
您可以使用CASE
UPDATE yourTable
SET "date" = CASE WHEN id <= 10 then '2016-11-01'::timestamp
WHEN id <= 20 then '2016-11-02'::timestamp
....
WHEN id <= 100 then '2016-11-10'::timestamp
END;