我只需要Oracle sdo_nn Update语句中的一个唯一结果,

卡洛斯·R

我需要一个唯一的结果,从tableB.Field到tableA.Field我正在使用sdo运算符sdo_nn,这是代码:

UPDATE table1 t1
SET t1.fieldA = (SELECT T2.fieldB,SDO_NN_DISTANCE(1) distance
FROM table1 T1, table2 T2
WHERE 
(sdo_nn(t1.geometry,t2.geometry,'SDO_NUM_RES=1',1)= 'TRUE')
ORDER BY DIST
)
WHERE EXISTS(
    SELECT 1
      FROM table2 t2
     WHERE sdo_nn(t1.geometry, t2.geometry,'SDO_NUM_RES=1',1)='TRUE'
     AND(t2.cell_name = 'string1' or t2.cell_name = string2')AND t1.fieldA = NULL
     );

在子查询的选择语句中,我得到一个错误,因为我仅使用一个字段(t1.fieldA),但是在语句中,我使用了运算符SDO_NN_DISTANCE(1),而sql开发人员像另一个字段一样对这个运算符进行计数。写这句话的正确方法是什么?我只使用sql,因为我需要在vba中插入此代码

谢谢!!!

小脚丫

显然,您不能(简化)

set t1.fieldA = (t2.fieldB, distance)  --> you want to put two values into a single column

因此,请fieldB从使用解析函数(row_number)对行进行“排序”的子查询中单独获取sdo_nn_distance(1) desc然后获取第一行的fieldB值。

这样的事情(我希望我设置正确的括号):

UPDATE table1 t1
   SET t1.fieldA =
          (SELECT x.fieldB                                 --> only fieldB
             FROM (SELECT T2.fieldB,                       --> from your subquery
                          SDO_NN_DISTANCE (1) distance,
                          ROW_NUMBER ()
                             OVER (ORDER BY sdo_nn_distance (1) DESC) rn
                     FROM table1 T1, table2 T2
                    WHERE (sdo_nn (t1.geometry,
                                   t2.geometry,
                                   'SDO_NUM_RES=1',
                                   1) = 'TRUE')) x
            WHERE rn = 1)                                  --> where RN = 1
 WHERE EXISTS
          (SELECT 1
             FROM table2 t2
            WHERE     sdo_nn (t1.geometry,
                              t2.geometry,
                              'SDO_NUM_RES=1',
                              1) = 'TRUE'
                  AND (   t2.cell_name = 'string1'
                       OR t2.cell_name = 'string2')
                  AND t1.fieldA IS NULL);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

机器人只需要一个命令

只需要一点帮助调试我的代码

春季启动:努力验证嵌套实体-我只需要验证1个唯一属性

我只需要显示JSON编码对象的一部分

当我只需要在每个缓存中存储一个令牌时实现TokenCache

Oracle空间:没有索引就无法评估SDO_NN

是否需要多个<meta>标签,还是我只需要一个?

给定一个值或常量,我只需要在Pandas上输出相关行

我只需要使用另一个列表中的重复项创建一个列表

DataTable单个列搜索,我只需要一个选择输入

我只需要最简单的方法在R上的bloxplot上方放一个字母

当我只需要返回一个值时,是否需要v8 HandleScope?

只需要通过休眠使用Oracle Sequence,即可生成唯一的顺序文件名

我正在使用递归函数,并且只需要在函数中打印一次

在我的情况下,只需要在我的列表视图中显示一个对象(仅title)

python imaplib:我只需要调用一次.close()吗?

在文本文件中,我只需要打印最后一个字符

我只需要运行一次此脚本文件吗?

在C:2中,我只需要一个printf输出。

提交按钮在表格数据下呈现。我只需要一个提交按钮

Angular 2 - 如何创建一个我只需要加载一次的全局服务

我只需要使用 onload 函数显示一次 jquery 弹出窗口

如何以只需要一种方法(如果可能)的方式优化我的代码?

gnuplot:我只需要在 x 轴上绘制 2 个值

我如何做到这样我只需要引用一次我的 api 密钥?

只需要一个圆心

我有一个日历表,每个月只需要显示 15 号和 30 号

熊猫“对象”系列不会转换为日期时间,我只需要一个小时

我只需要在我的表中选择一个破折号