如何从 oracle 中的行中 select 元组

How to select tuple from rows in oracle

我的温度 table 具有以下值:

╔═══════════╤═══════════╗
║ LATITUDE  │ LONGITUDE ║
╠═══════════╪═══════════╣
║ 69.122112 │ 39.122112 ║
╟───────────┼───────────╢
║ 69.123450 │ 39.123450 ║
╚═══════════╧═══════════╝

我想做这样的事情

with temp as (select LATITUDE,LONGITUDE from SOME_TABLE_B)
select * from temp
union
select LATITUDE,LONGITUDE from SOME_TABLE where (LATITUDE, LONGITUDE) in (select (LATITUDE, LONGITUDE) from temp)

至于select具有相似经纬度对的所有其他数据。但我得到以下结果:

ORA-00920 invalid relational operator

如何从 table 中 select 元组,以将 IN CLAUSE 与元组一起使用?

先谢谢了

我认为问题在于子查询中的附加括号。试试这个:

select LATITUDE,LONGITUDE
from SOME_TABLE
where (LATITUDE, LONGITUDE) in (select LATITUDE, LONGITUDE from temp)

不太确定您的要求。如果您想检查临时 table 中的数据可用性,您可以使用以下查询,

select LATITUDE,LONGITUDE from SOME_TABLE where (LATITUDE, LONGITUDE) in (select 
LATITUDE, LONGITUDE from temp)

如果你想检查可用性以及合并临时数据,你可以使用下面的方法,

select LATITUDE,LONGITUDE from SOME_TABLE where (LATITUDE, LONGITUDE) in (select 
LATITUDE, LONGITUDE from temp)
UNION
select 
LATITUDE, LONGITUDE from temp

在您的情况下,您还可以尝试将连接与子查询结合使用:

select LATITUDE,LONGITUDE 
from SOME_TABLE  s 
INNER JOIN  ( 
    select  LATITUDE, LONGITUDE 
 from temp
 ) t on t.LATITUDE = s.LATITUDE 
    AND t.LONGITUDE  = s.LONGITUDE