基于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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...