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

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

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

  1. ╔═══════════╤═══════════╗
  2. LATITUDE LONGITUDE
  3. ╠═══════════╪═══════════╣
  4. 69.122112 39.122112
  5. ╟───────────┼───────────╢
  6. 69.123450 39.123450
  7. ╚═══════════╧═══════════╝

我想做这样的事

  1. with temp as (select LATITUDE,LONGITUDE from SOME_TABLE_B)
  2. select * from temp
  3. union
  4. select LATITUDE,LONGITUDE from SOME_TABLE where (LATITUDE, LONGITUDE) in (select (LATITUDE, LONGITUDE) from temp)

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

jv4diomz

jv4diomz1#

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

  1. select LATITUDE,LONGITUDE
  2. from SOME_TABLE
  3. where (LATITUDE, LONGITUDE) in (select LATITUDE, LONGITUDE from temp)
a11xaf1n

a11xaf1n2#

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

  1. select LATITUDE,LONGITUDE from SOME_TABLE where (LATITUDE, LONGITUDE) in (select
  2. LATITUDE, LONGITUDE from temp)

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

  1. select LATITUDE,LONGITUDE from SOME_TABLE where (LATITUDE, LONGITUDE) in (select
  2. LATITUDE, LONGITUDE from temp)
  3. UNION
  4. select
  5. LATITUDE, LONGITUDE from temp
8mmmxcuj

8mmmxcuj3#

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

  1. select LATITUDE,LONGITUDE
  2. from SOME_TABLE s
  3. INNER JOIN (
  4. select LATITUDE, LONGITUDE
  5. from temp
  6. ) t on t.LATITUDE = s.LATITUDE
  7. AND t.LONGITUDE = s.LONGITUDE

相关问题