Michael Maddison
michael at ddisolutions.com.au
Tue Dec 19 21:19:21 CST 2006
Stuart, SELECT LTRIM(RIGHT(pub_name, CHARINDEX(' ', REVERSE(pub_name)))) AS Expr1 FROM publishers The -1 throws an error if there are no spaces. This works fine and is better then mine. cheers Michael M -----Original Message----- From: dba-sqlserver-bounces at databaseadvisors.com [mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, 20 December 2006 2:06 PM To: dba-sqlserver at databaseadvisors.com Subject: Re: [dba-SQLServer] Find the second occurrence of a character in astring How about (aircode): RIGHT(FullName,CHARINDEX(' ',REVERSE(FullName))-1) On 19 Dec 2006 at 18:27, artful at rogers.com wrote: > 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 > -- Stuart _______________________________________________ dba-SQLServer mailing list dba-SQLServer at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-sqlserver http://www.databaseadvisors.com