1

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

4

2 回答 2

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 演示

于 2012-10-05T10:21:53.663 回答
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
于 2012-10-05T10:24:44.747 回答