问题描述
具有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 (将#修改为@)