2016-04-02 8 views
3

市、州がvenue_city_stateというテーブル属性に格納されている'Washington, DC'のような値を持つ文字列データがあります。文字列を2つの新しい属性に分割する方法

私はこのvenue_cityと呼ばれる2つの他に属性、およびvenue_stateを分割しようとしているが、私は

UPDATE all_event_details 
SET venue_city = i.venue_city, venue_state = i.venue_state 
FROM (SELECT split_part(venue_city_state, ',', 1) AS venue_city, 
    split_part(venue_city_state, ',', 2) AS venue_state 
    FROM all_event_details) i; 

を行うとき、私は唯一ののために会場の状態で会場の都市の最初の値ワシントンを取得し、DC ALL私のテーブルの行。その特定の行のvenue_city_stateの値ではありません。

は、どのように私はテーブルにためvenue_city_stateのうち、各行だけではなく、最初行をvenue_cityとvenue_stateを取得するには、このアップデートを変更できますか?

ありがとうございました!おかげ

答えて

1

は、サブ選択の必要はありませ:

UPDATE all_event_details 
    SET venue_city = split_part(venue_city_state, ',', 1), 
     venue_state = split_part(venue_city_state, ',', 2) 
0

すでにそれは良いでしょうが、あなたはあなたのクエリがそのがで対応しall_event_detailsからそれぞれの行に一致するようにWHERE句を追加することで、あなたの目的を達成することができることをa_horse_with_no_nameの答えを持っていませんセカンダリセレクト

UPDATE all_event_details 
SET venue_city = i.venue_city, venue_state = i.venue_state 
FROM (SELECT id, 
       split_part(venue_city_state, ',', 1) AS venue_city, 
       split_part(venue_city_state, ',', 2) AS venue_state 
     FROM all_event_details) i 
WHERE id = i.id; 

私はidがall_event_detailsキーであると仮定しています。

関連する問題