[dba-SQLServer] Find the second occurrence of a character in astring

Michael Maddison michael at ddisolutions.com.au
Tue Dec 19 21:14:07 CST 2006


Hi Arthur,
REVERSE is what you need.
Something like...

SELECT     RTRIM(REVERSE(SUBSTRING(REVERSE(pub_name), CHARINDEX(' ',
REVERSE(pub_name)), 100))) AS Expr1
FROM         publishers 

cheers

Michael M


To: dba-sqlserver at databaseadvisors.com
Cc: Peter Brawley
Subject: [dba-SQLServer] Find the second occurrence of a character in
astring

Assume these two values in two rows in the table of interest:

Andrei Pascal
Arthur B. Fuller

I need to parse out the surname. I can't just grab the characters
following the first space, unless there is only one space. But if there
are two spaces, then I need the trailing string following the second
space.

CHARINDEX( 'f', 'abcdefgh' ) returns 6  so that part is easy. How to
find the second occurrence, if any? In fact, assuming really bizarre
data, what I want is the string following the last space in the value.

Even that may not work, given Portuguese and Spanish and French
surnames, but for now I will live with that.

Suppose an entry such as:

Juan Carlos de la Vega

I need to grab the string following the last space, in T-SQL syntax.

Any ideas?
TIA,
Arthur


_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com




More information about the dba-SQLServer mailing list