我正在 Oracle 中编写一个类似这样的 sql 查询:
SELECT *
FROM ( SELECT testid,
max(decode(name, 'longitude', stringvalue, NULL)) as longitude,
max(decode(name, 'latitude', stringvalue, NULL)) as latitude
FROM test_av
GROUP BY testid
) av
INNER JOIN (
SELECT id,
((ACOS(
SIN(16.15074 * 3.141592653 / 180)
* SIN(latitude * 3.141592653 / 180)
+ COS(16.15074 * 3.141592653 / 180)
* COS(latitude * 3.141592653 / 180)
* COS((-22.74426 - longitude)*3.141592653 / 180)
)*6373)) as distance
FROM test
) t ON t.id = av.testid
WHERE t.distance <= 100
当我执行这个查询时,Oracle 说'longitude invalid identifier'
。我试图访问子查询别名,但查询失败。
如何将一个子查询的“别名”访问到另一个子查询中?