sql—如何从oracle中的行中选择元组

klr1opcd  于 2021-07-24  发布在  Java
关注(0)|答案(3)|浏览(408)

我有一个临时表,它有以下值:

╔═══════════╤═══════════╗
║ 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)

以便选择所有其他具有相似纬度和经度对的数据。但我得到以下结果:
ora-00920关系运算符无效
如何从表中选择tuple,以便在子句中与tuple一起使用?
谢谢,这是预付款

jv4diomz

jv4diomz1#

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

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

a11xaf1n2#

不太清楚你的要求。如果要检查临时表中的数据可用性,可以使用下面的查询,

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

如果您想检查可用性以及合并来自temp的数据,可以使用下面的,

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

8mmmxcuj3#

在您的情况下,您还可以尝试将联接与子查询一起使用:

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

相关问题