Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
LIKE ('4*-8002') works, LIKE('4??-8002') doesn't
Message
De
04/11/1999 20:41:58
 
 
À
04/11/1999 20:31:33
Cindy Winegarden
Duke University Medical Center
Durham, Caroline du Nord, États-Unis
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00287283
Message ID:
00287284
Vues:
20
>Anybody know any gotcha's with LIKE? Our fund codes are in the form: '123-4567'. I am using SELECT against Fox tables.
>
>This evaluates .T. against records in the table in the watch window as expected:
>LIKE('4??-8002', ALLT(PyrlDist.Fund))
>
>but does not work within a SELECT:
>SELECT SUM(IIF(LIKE('4??-8002', ALLT(PyrlDist.Fund)), 1, 0)) AS ...
>
>But this SELECTs data correctly:
>SELECT SUM(IIF(LIKE('4*-8002', ALLT(PyrlDist.Fund)), 1, 0)) AS ...
>
>So I can get my data, but I'd like to know why the ??'s didn't work. Any ideas?

This is a guess, but it has to do with how the wildcards * and ? work. An * matches any sequence of zero or more characters, while the ? matches exactly any one character. Therefore, if your value is stored in the fund as:

"499 -8002"

4*-8002 matches, with * representing "99 ", while 4??-8002 fails, since the two ? characters match the two 9s, but ' -8002' is not the same as "-8002"

Similarly with "49-8002" as a data value, the * works, but ?? doesn't, since '8002' is not the same as "-8002"...

Isn't pattern matching fun?????
EMail: EdR@edrauh.com
"See, the sun is going down..."
"No, the horizon is moving up!"
- Firesign Theater


NT and Win2K FAQ .. cWashington WSH/ADSI/WMI site
MS WSH site ........... WSH FAQ Site
Wrox Press .............. Win32 Scripting Journal
eSolutions Services, LLC

The Surgeon General has determined that prolonged exposure to the Windows Script Host may be addictive to laboratory mice and codemonkeys
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform