0

姓から接尾辞を取得する必要があります。たとえば、 Smith JrまたはSmith Jrのような接尾辞が付いた姓を取得する場合があります。またはSmith LCSW、またはSmith JACG、またはこのようなもの: Abardo Torres Jr または Abbas Feinberg LCSW など。

SUBSTR と INSTR を使用する必要があることはわかっていますが、行き詰まっています。私は次のことしかできず、それを機能させることができません。誰でも私を助けることができますか?

subtr(last_name,instr(last_name,' ',1) + 1
     ,(instr(last_name,' ', instr(last_name,' ',1)+1 - (instr(last_name,' ',1)+1)

私がそれを機能させることができたとしても、 Smith Jrのように 1 単語と接尾辞で構成される姓に対してのみ機能し、 Abardo Torres Jrなどの 2 単語で構成される姓に対しては機能しない可能性があります。

4

1 に答える 1

0
select 
  last_name,
  regexp_replace(last_name, '\s*((Esq|KBE|MSc|BSc|Jr|LCSW|PhD|J\.A\.C\.G)\.?\s*)*$') 
    as name_without_suffix,
  regexp_substr(last_name, '((Esq|KBE|MSc|BSc|Jr|LCSW|PhD|J\.A\.C\.G)\.?\s*)*$') 
    as suffix
from your_table

文字列の最後の単語を単純に取得するには:

regexp_substr(string, '(\S+)\s*$', 1, 1, 'i', 1)

フィドル

于 2013-04-05T16:29:57.940 に答える