我有一个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查询?感谢您的投入!
答案 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;
答案 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