簡體   English   中英

從ORACLE DB中的名稱字符串中提取姓氏

[英]extracting last name from a name string in ORACLE DB

我正在編寫一個小查詢,以從一堆作者姓名數據庫中提取所有姓氏。 文件中的名稱將包含名字和中間名,或僅包含名字。

例如:約翰·史密斯(John Smith)

因此,我不能僅在第一個空格之后進行搜索...但是我確定,姓氏應從END到字符串右側的第一個空格。 我真的不在乎名字。

這就是我目前擁有的...

select [name], LEFT([name], CHARINDEX(' ', [name] + ' ')-1) as firstName,
SUBSTRING([name], charindex(' ', [name]+' ') + 1, LEN([name])) as lastName
from Author 
;

我對sql還是很陌生,非常感謝您的幫助! 提前致謝!

編輯:對於那些遇到這種需要幫助的人,此行可以幫助:

select substr(t.string,instr(t.string,' ',-1)+1) last_word  

對於Oracle DB,請嘗試以下操作:

WITH t AS
  (SELECT name AS l FROM <your query>
  )
SELECT SUBSTR(l,instr(l,' ',-1)+1,LENGTH(l)) FROM t;

SUBSTRING_INDEX()在這種情況下應該可以工作。

select name, SUBSTRING_INDEX(name,' ',-1) as lastName from Author;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM