表CLASS (class, count)
class count
--------- -------
first 3
second 2
third 4
表STUDENT (class, id_no, name)
name id_no name
-------- ------- ------
first 1 abc
first 2 bcd
first 3 def
second 1 xyz
second 2 tay
third 1 m
third 2 n
third 3 o
third 4 p
STUDENT
表中的总行数始终等于CLASS
表中的计数。
例如:CLASS
表中的第一个条目显示类名为"第一个"算作3。
所以它在STUDENT
表中有3个条目。
现在的问题是 - 学生表的id_no
列有' 0'所有行都为零。
应如上所示进行更新。
如何实现?
答案 0 :(得分:0)
只有在没有重复的类名时才能使用。否则,您需要先创建一个唯一的ID
WITH cte as (
SELECT class,
row_number() over (partition by clas order by name ) as id,
name
FROM Student
)
UPDATE Student
SET id_no = cte.id
FROM cte
WHERE Student.class = cte.class
and Student.name = cte.name