更新表的操作,见图解决办法
更新表的操作,见图
按card字段由小到大的顺序,更新no1字段,为序号列,即从1,2,3,4..........N递增,请问如何写语句?
------解决思路----------------------
必须要有id或主键才能一对一更新,否则相同card之间会混乱的。
------解决思路----------------------
+1, 可以再添加列rq,sktime的排序.
UPDATE table1
SET no1 = rn
FROM table1,
(SELECT id,
ROW_NUMBER() OVER(ORDER BY card, rq, sktime) RN
FROM table1
) t
WHERE table1.id = t.id and table1.rq =t.rq and table1.sktime = t.sktime
------解决思路----------------------
with cet as (
select Card,No1,ROW_NUMBER()over(order by card)ID from tabname
)
update cet
set No1=ID
按card字段由小到大的顺序,更新no1字段,为序号列,即从1,2,3,4..........N递增,请问如何写语句?
------解决思路----------------------
UPDATE table1
SET no1 = rn
FROM table1,
(SELECT id,
ROW_NUMBER() OVER(ORDER BY card desc) RN
FROM table1
) t
WHERE table1.id = t.id
必须要有id或主键才能一对一更新,否则相同card之间会混乱的。
------解决思路----------------------
+1, 可以再添加列rq,sktime的排序.
UPDATE table1
SET no1 = rn
FROM table1,
(SELECT id,
ROW_NUMBER() OVER(ORDER BY card, rq, sktime) RN
FROM table1
) t
WHERE table1.id = t.id and table1.rq =t.rq and table1.sktime = t.sktime
------解决思路----------------------
with cet as (
select Card,No1,ROW_NUMBER()over(order by card)ID from tabname
)
update cet
set No1=ID