我有一个包含2列的表(ID,IdResponsible) 我需要创建一个过程,对于该表中的每个记录,IdResponsible列用计数器1到4填充。
如果de counter> 4然后计数器= 1再次
我该怎么做?
答案 0 :(得分:2)
您可以生成排名行号并将其重置为每4行。像这样:
SELECT t.id,
CASE WHEN @rownum >= 4 THEN @rownum := 1
ELSE @rownum := @rownum + 1 END AS IdResponsible
FROM table1 t, (SELECT @rownum := 0) r;
这会给你类似的东西:
| id | IdResponsible |
|----|---------------|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 1 |
| 6 | 2 |
| 7 | 3 |
| 8 | 4 |
| 9 | 1 |