Creating a sort where certain leading chars are ignored
Ivan Smahin
ivan_smahin at paradigmasoft.com
Sat Jun 26 12:56:22 CDT 2010
Hello Ivan,
Saturday, June 26, 2010, 8:26:52 PM, you wrote:
> Hello jda,
> Friday, June 25, 2010, 2:42:49 AM, you wrote:
>> Hi Ruslan,
>> I create a temporary field so that I can sort names by. I have a
>> method that lets me ignore certain leading "names", like
>> van
>> von
>> de
>> etc.
>> So
>> de Long
>> would sort by
>> Long
>> I'd like to be able to specify characters to ignore, too, so if the user puts the name in brackets
>> [Ruslan]
>> it would sort by
>> Ruslan (not [Ruslan]).
>> Here's what I'm doing (it's looking for the word to be ignored at
>> the beginning of the names, and removing it if found):
>> tempField =
>> myDatabase.myReferences.createVarCharField("authorEditorSortMethod", 1000, EVFlag.fTemporary, s)
>> where
>> s = "CCASE WHEN LOCATE(UPPER('von
>> '),UPPER(coalesce(authors,editors)))=1 THEN
>> RIGHT(coalesce(authors,editors), LENGTH(coalesce(authors,editors)) -
>> LENGTH('von ')) WHEN LOCATE(UPPER('[
>> '),UPPER(coalesce(authors,editors)))=1 THEN
>> RIGHT(coalesce(authors,editors), LENGTH(coalesce(authors,editors)) -
>> LENGTH('[ ')) ELSE coalesce(authors,editors) END"
>> It works great for words containing letters, but not punctuation.
>> So I can't get t his to work with "names" beginning with [. That is,
>> it does not work with this construction
>> CASE WHEN LOCATE(UPPER('[ '),UPPER(coalesce(authors,editors)))=1
>> THEN RIGHT(coalesce(authors,editors),
>> LENGTH(coalesce(authors,editors)) - LENGTH('[ ')) ELSE coalesce(authors,editors) END"
>> Any ideas? What would I do to make this identify "words" beginning with punctuation?
>> And also, how can I make this case *sensitive*?
> it could be as simple as
> select
> trim(regex_replace( f1, '\\[|\\]|van|der|von', '\\'))
> from
> t1
To ignore case sensitive:
select
trim(regex_replace( f1, '(?i)\\[|\\]|van|der|von', '\\'))
from
t1
>> _______________________________________________
>> Valentina mailing list
>> Valentina at lists.macserve.net
>> http://lists.macserve.net/mailman/listinfo/valentina
--
Best regards,
Ivan Smahin
Senior Software Engineer
Paradigma Software, Inc
Valentina - The Ultra-Fast Database
http://www.valentina-db.com
More information about the Valentina
mailing list