sql数组:从my\u表中选择id,其中“arrayvalue”=“defined\u arrayvalue”

piztneat  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(294)

这是一个关于数组的初级问题。我希望答案很简单。该示例取自oraclespatial,但我认为它适用于所有阵列。
我有这个选择:

SELECT
    D.FID
  , D.GEOM.SDO_ELEM_INFO   -- column GEOM contains spatial data
FROM
    my_table D

我得到这个结果:

73035   MDSYS.SDO_ELEM_INFO_ARRAY(1, 2, 1)
73036   MDSYS.SDO_ELEM_INFO_ARRAY(1, 4, 3, 1, 2, 1, 11, 2, 2, 19, 2, 1)
73037   MDSYS.SDO_ELEM_INFO_ARRAY(1, 2, 1)

现在我要选择定义了(1,2,1)的所有行:

SELECT
    D.FID
  , D.GEOM.SDO_ELEM_INFO
FROM
    my_table D
WHERE
-- Pseudo-Code is following
    D.GEOM.SDO_ELEM_INFO is "(1, 2, 1)";

简单地说:“array\u from\u row=defined\u array”。我发现了很多关于内爆、table和collect等的知识,但是如何在两个数组上定义子句呢?
谢谢你的帮助!

hfwmuf9z

hfwmuf9z1#

try-in子句,也可以同时使用

SELECT
    D.FID
  , D.GEOM.SDO_ELEM_INFO
  FROM
 my_table D
 WHERE
 D.GEOM.SDO_ELEM_INFO in (1, 2, 1) or ( D.GEOM.SDO_ELEM_INFO = 1 or D.GEOM.SDO_ELEM_INFO = 2 or D.GEOM.SDO_ELEM_INFO = 3);

相关问题