2011-01-17 4 views
1

У меня есть столбец с именем «описания данных», который имеет записи, какПроблема с использованием регулярных выражений в SQL

Mumbai,Maharastra,India 
London,London, Britain 
Chandigarh,Haryana,India 
Lahore, Punjab, Non-India 

Каждая строка описывает значение одного описания данных столбца.

Теперь мне нужно обновить другую таблицу, которая будет иметь три колонки, которые будут иметь

<City> => <Citycode> ---> Every City 
<Statename> => <Statename> 
<Country> => <Country> 

У меня есть таблица, в которой производится отображение между городом и City-Code. Теперь мне нужно сделать еще одну таблицу с тремя columsn Citycode, Statename, Country

Как это сделать с помощью нескольких инструкций SQl и без использования PL/SQL?

Кроме того, порядок не может быть одинаковым в строках. Как и в некоторых строках, есть порядок Город, Штат, Графство. Другие могут иметь заказ Государство, Страна, Город.

+0

Так по существу, вы хотите, чтобы извлечь значение из этого одного столбца в 3 колонки, которые вы можете приступить к использованию в запросе, например, к ПРИСОЕДИНИТЬСЯ к другому столу с? –

+0

Точно, что я хочу Криса. – Suman

ответ

3

вы можете использовать REGEXP_SUBSTR для извлечения информации из вашего исходного столбца:

SQL> WITH my_data AS (
    2  SELECT 'Mumbai,Maharastra,India' d FROM dual 
    3  UNION ALL SELECT 'London,London, Britain' d FROM dual 
    4  UNION ALL SELECT 'Chandigarh,Haryana,India' d FROM dual 
    5  UNION ALL SELECT 'Lahore, Punjab, Non-India' d FROM dual 
    6 ) 
    7 SELECT regexp_substr(d, '[^, ]+', 1, 1) City, 
    8   regexp_substr(d, '[^, ]+', 1, 2) Statename, 
    9   regexp_substr(d, '[^, ]+', 1, 3) Country 
10  FROM my_data; 

CITY      STATENAME     COUNTRY 
------------------------- ------------------------- ------------------------- 
Mumbai     Maharastra    India 
London     London     Britain 
Chandigarh    Haryana     India 
Lahore     Punjab     Non-India 
+0

Если они не в одном порядке. Как некоторые из них находятся в порядке Махараштра, Мумбаи, Индия – Arc

Смежные вопросы