0
我有一個返回兩行的查詢:PostgreSQL的 - 返回多行作爲一個
SELECT *
FROM (
SELECT cola,colb from table LIMIT 2
) as f
結果是:
cola, colb
x, 1
y, 2
是否有可能把這個結果在頂層選擇?類似:
SELECT some_function(x,y), some_other_function(1,2)
FROM (
SELECT cola,colb from table LIMIT 2
) as f
下面是實際的查詢:
SELECT *
FROM
(
SELECT
alt,
st_distance_sphere(
st_closestpoint(geom,st_setsrid(st_makepoint(x,y),4326)),
st_setsrid(st_makepoint(x,y),4326)
) as d
FROM table
) as foo
它返回:
alt | d
800 | 9.658
900 | 11.59
etc
不能將在子查詢中檢索到的值用作父查詢中的字段名。 SQL不能這樣工作。你可以檢索這些值並從它們中建立一個新的查詢,但是沒有自動的方法來做你想要的。 – 2014-08-28 18:02:05
我認爲這是類似於可樂[0]等。我一直沒有看到任何關於這個在線(也許我正在尋找錯誤的術語?)所以張貼在這裏尋找幫助...? – Matt 2014-08-28 18:03:19
嗯... x和y,1和2屬於相同的ID嗎?如果是這樣,那麼這可能可以通過樞紐解決方案來完成。 – 2014-08-28 18:10:35