2016-04-02 17 views
3

Şehir, Durum'un venue_city_state adlı bir tablo özniteliğinde saklandığı 'Washington, DC' gibi görünen değerlere sahip dize verileri var.Bir dize iki yeni özniteliğe bölme

Bu venue_city adlandırılan iki başkaları içine niteliği ve venue_state bölmek çalışıyorum ama

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; 

yaptığımda sadece için mekan devlet mekan şehirde ilk değerini Washington almak ve DC Tablo satırlarımın tamamı. Bu belirli satır için venue_city_state değerinde değil.

nasıl venue_city almak ve için venue_city_state her satır dışına venue_state ve tabloda sadece ilk satır için bu Güncelleştirme değiştirebilirim?

Her türlü yardım takdir! Teşekkür

cevap

1

gerek yok bir alt-select:

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

Zaten daha iyi olduğunu a_horse_with_no_name en cevabım var ama fıkra onun içinde karşılık gelen all_event_details her satır maç için NEREDE sorgunuz bir ekleme ile amaçla elde edebilirsiniz ikincil seçim.

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; 

Ben id all_event_details anahtarı olduğunu varsayıyorum.

İlgili konular