2016-07-20 3 views
0

1つのカラムとカラム名を持つテーブルがFULL_NAME(Rajeev Pratap Sing)のようなものがあるとします。しかし、私はFirst_Name、Middle_Name、Last_Nameのような3つのカラムを持つ他のテーブルに同じデータを挿入したい。結果は、他のテーブル内のようにする必要があり1からontherテーブルへのデータの移行

... First_Name-- Middle_Name-- LAST_NAME
Rajeev-- Pratap - シン

+2

文字列を別々の単語に分割する方法を尋ねていますか?ミドルネームがない場合やミドルネームが2つある場合はどうなりますか? –

+0

はい、文字列を別々の単語に分割したいと思います。 –

+1

期待どおり名前が常に保存されることはほとんどありません。予期せぬことをいつも期待している!名前の解析は100%動作しません。これはちょうど練習でない限り、すべての回答は要素の欠落(名前なし)、複数の要素(2つの中間名)、複数/異なる区切り文字、名前に埋め込まれた単一引用符/スペース、言語固有の文字もちろん、これらの状況をすべて処理するためのルールを定義する必要があります。考えるだけのこと。 –

答えて

1

以下試してみてください。

SELECT REGEXP_SUBSTR('Rajeev Pratap Sing','[^ ]+',1,1) "First Name", 
     REGEXP_SUBSTR('Rajeev Pratap Sing','[^ ]+',1,2) "Middle Name", 
     REGEXP_SUBSTR('Rajeev Pratap Sing','[^ ]+',1,3) "Last Name" 
FROM DUAL 
1
INSERT INTO table2 
SELECT regexp_substr(full_name,'\S+'),--first name 
     regexp_substr(full_name,'\S+',regexp_instr(full_name,' ',1,1)),--middle 
     regexp_substr(full_name,'\S+',regexp_instr(full_name,' ',1,2)) --last 
FROM table_1; 
+0

ありがとうPrashant、私はこのクエリをぶら下げようとします –

+0

私は確かに.ITの問題を解決するだろう。あなたがそれを見つける有用なマーク私の答えは受け入れ、いくつかの評判を得るのを助けてください –

+0

@ RajeevSinghこんにちはrajeev。 –

1
 
Insert into emp_name(First_Name,Middle_Name,Last_Name) select 
substr(FULL_NAME,1,instr(full_name,' ')) as First_Name, 
substr(Full_Name,instr(full_name,' ',1,1)+1,instr(full_name,' ',1,2)-instr(full_name,' ',1,1)) as Middle_Name, 
substr(Full_Name,instr(full_name,' ',1,2)) as Last_Name from full_name; 
関連する問題