1つのカラムとカラム名を持つテーブルがFULL_NAME(Rajeev Pratap Sing)のようなものがあるとします。しかし、私はFirst_Name、Middle_Name、Last_Nameのような3つのカラムを持つ他のテーブルに同じデータを挿入したい。結果は、他のテーブル内のようにする必要があり1からontherテーブルへのデータの移行
... First_Name-- Middle_Name-- LAST_NAME
Rajeev-- Pratap - シン
1つのカラムとカラム名を持つテーブルがFULL_NAME(Rajeev Pratap Sing)のようなものがあるとします。しかし、私はFirst_Name、Middle_Name、Last_Nameのような3つのカラムを持つ他のテーブルに同じデータを挿入したい。結果は、他のテーブル内のようにする必要があり1からontherテーブルへのデータの移行
... First_Name-- Middle_Name-- LAST_NAME
Rajeev-- Pratap - シン
以下試してみてください。
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
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;
ありがとうPrashant、私はこのクエリをぶら下げようとします –
私は確かに.ITの問題を解決するだろう。あなたがそれを見つける有用なマーク私の答えは受け入れ、いくつかの評判を得るのを助けてください –
@ RajeevSinghこんにちはrajeev。 –
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;
文字列を別々の単語に分割する方法を尋ねていますか?ミドルネームがない場合やミドルネームが2つある場合はどうなりますか? –
はい、文字列を別々の単語に分割したいと思います。 –
期待どおり名前が常に保存されることはほとんどありません。予期せぬことをいつも期待している!名前の解析は100%動作しません。これはちょうど練習でない限り、すべての回答は要素の欠落(名前なし)、複数の要素(2つの中間名)、複数/異なる区切り文字、名前に埋め込まれた単一引用符/スペース、言語固有の文字もちろん、これらの状況をすべて処理するためのルールを定義する必要があります。考えるだけのこと。 –