2017-08-15 7 views
1

住所のセットのジオコーディングされたデータを含むテーブルがあります。問題は、緯度と経度は同じ列に格納されますが、同じ表の別の列にあるコード(0または1)によって区別されます。各アドレスには、列に2回現れる一意のIDが付けられます(latの場合は1、longの場合は1)。SQL:指定されたIDに対して別々の列としてコード化された行を格納

対応するIDとともに、別の列として同じ行にlatとlongを表示したいとします。

+2

いくつかのサンプルデータと予想される出力を示しています。 –

+0

サンプルがなくてもイメージングするのは難しいです。感謝! –

答えて

0
select unique_id, 
     max(case when code = 0 then geocoded_column end) as lat, 
     max(case when code = 1 then geocoded_column end) as long 
    from geocoded_table 
    group by unique_id 
+0

ありがとう!私は別のスレッドで同様の提案を見ていましたが、動作させることができませんでした。始めて、これはうまくいったので、どこかに問題があったに違いない。 – themorethelarrier

0
with ttt as (
      select 111 ID, '54.65548' coords, 1 def from dual 
      union all 
      select 111 ID, '-34.8456' coords, 0 def from dual 
      ) 
select t1.ID, t1.coords, t2.coords 
from ttt t1 
    join ttt t2 ON t1.ID = t2.ID 
        and t1.def <> t2.def 
        and t1.def = 1 -- or t1.def = 0 if you want change order of coords 
関連する問題