如何解决基于exist和lag更新
具有id,纬度,经度,人的tableX。 ID是PK和汽车公司。我需要通过以下检查使用随机坐标对(我有算法)来更新纬度和经度:
第1步:检查同一个人的姓名是否已经获得坐标。如果是,则为同一个人添加与以前相同的个人。如果否,请转到步骤2。 第2步:添加生成新的随机对并将其分配。
我该如何解决?
下面的代码(显然不起作用)。但是代码的问题是控制台日志显示事务被终止而没有循环:
DECLARE @COUNT INT = 1
WHILE @COUNT < 10000
BEGIN
IF EXISTS(SELECT LAG(latitude) over (PARTITION BY person ORDER BY id DESC) FROM TableX)
BEGIN
UPDATE TableX
SET latitude = (SELECT LAG(latitude) over (partition by person ORDER BY id DESC) FROM TableX),longitude = (SELECT LAG(longitude) over (partition by person ORDER BY id DESC) FROM TableX)
WHERE @COUNT = id
SET @COUNT += 1
END
ELSE
BEGIN
DECLARE
@MAX_LONG FLOAT = 50.123249,@MIN_LONG FLOAT = 44.978349,@MIN_LAT FLOAT = 38.484407,@MAX_LAT FLOAT = 41.731154,@LON FLOAT = ROUND(RAND() * (@MAX_LONG - @MIN_LONG + 1) + @MIN_LONG,6),@LAT FLOAT = ROUND(RAND() * (@MAX_LAT - @MIN_LAT) + @MIN_LAT,6)
UPDATE TableX
SET latitude = @LAT,longitude = @LON
WHERE id = @COUNT
SET @COUNT += 1
END
END
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。