Hi I've been poking around on the use of Contains, which is what I think I need to use in my fex, however I need to take it a step further. I want to say:
WHERE FLD CONTAINS 'W-' OR 'S-' OR 'C-';
The key is that it has to be the first two character of the field NOT just anywhere in the string. Can anyone tell me how to do that.This message has been edited. Last edited by: Kerry,
WEBFOCUS 7.14 WEBFOCUS.8.04
February 09, 2009, 03:16 PM
Francis Mariani
Try LIKE instead of CONTAINS:
TABLE FILE CAR
PRINT
COUNTRY
CAR
MODEL
WHERE COUNTRY LIKE 'EN%' OR COUNTRY LIKE 'FR%' OR COUNTRY LIKE 'IT%'
END
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
February 09, 2009, 04:14 PM
Darin Lee
As is frequently the case, there are multiple ways to do this. Francis' suggestion will probably generate the most efficient SQL. You could also say
WHERE EDIT(FLD,'99') EQ 'W-' OR 'S-' OR 'C-';
There is also the fall-back of defining a virtual field that is equal to the first two characters of FLD and then using that virtual field in your WHERE. The problem with that is your selection criteria on a virtual field basically causes a tablescan (if that is your only criteria) because it has to read EVERY record anyway to calculate the virtual field, then throw it away if it does not meet the criteria. Very inefficient.
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
February 10, 2009, 08:36 AM
CathyB
Thank you so much, Francis suggestion worked like a charm! Appreciate the quick response. You guys, as always, are awesome!