[英]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.