0
我有一个数据库表跟踪项目列表,它们在必要时被插入和移除。我发现了一堆行不通的行,我想在插入或删除一行时做一些处理。在数据库队列中重新排序无序的行
目前,我使用的是基本的INSERT语句
insert into this_queue (thing, queNum) VALUES ('thing1', 1)
delete from this_queue where thing = 'thing1'
update this_queue set queNum = queNum - 1 where queNum > 1
这些查询做工精细delete一个用于从队列中的单个项目,但是当我删除不按顺序排列的项目,它抛出的一切不正常的。
我一直在试图找出有为了排队号码的最好办法,即... 1,2,3,4,5,6,等等......当项目被添加或删除。
我在想插入或删除操作后是删除或添加1个检查相邻号码是存在的,如果不再计数,跟踪和继续下去,直到我找到的数量。然后我可以减去这个数字并回到原点。
我为我使用Python和MSSQL服务器2008R2包括在标签列表蟒蛇。
这似乎有点凌乱我,所以我希望有人将有一个更优雅的方式。由于
我不知道该功能的或with语句。让我试试看吧 – Drewdin
WITH函数实际上是CTE'Comman Table Expression'的语法,而row_number()是sql server中的一个排名函数。非常有用的一些非常棘手的操作在SQL Server中。 –
我对CTE并不熟悉,我需要研究它 – Drewdin