使用重复的顺序值填充SQL数据库列

时间:2012-10-05 10:01:39

标签: sql sqlite

我有一个SQLite数据库TestDB。在这里我有一张桌子,比如records。我想创建一个列ID,它依次从1到3中取值。

例如:

**Record#**      **ID**
Record1            1
Record2            2
Record3            3
Record4            1
Record5            2
Record6            3
Record7            1
Record8            2
Record9            3
Record10           1
Record11           2
Record12           3

等等......

是否有可以实现此目的的SQL查询?感谢您的投入!

2 个答案:

答案 0 :(得分:3)

试试这个:

select Record,(select COUNT(0) 
                from Table1 t1 
                where t1.Record <= t2.Record 
     )%3+1 as 'ID'
from Table1 t2 
ORDER BY Record; 


SQL Fiddle demo

答案 1 :(得分:0)

其中一个解决方案可能是将列作为标识并在达到其阈值时重置标识:

if exists(select id from records where id = 3)
begin
DBCC CHECKIDENT('records', RESEED, 0)
insert into records values('Record4')
end
else
begin
insert into records values('Record3')
end