LIKE operator for Progress DB SQL

Tarski picture Tarski · Nov 13, 2009 · Viewed 15.2k times · Source

I'm trying to do something like this in Progress SQL (THIS IS NOT POSTGRES!)

SELECT
    CASE WHEN code LIKE '%foo%' THEN 'Y' ELSE 'N' END as foo
FROM
    bar

However Progress does not support a LIKE operator. INSTR looks like it might do the job, but it is a Progress extension an isn't supported on the DB I am using. Is there another way of achieving this using standard ODBC functions?

Thanks

Answer

Dave Webb picture Dave Webb · Nov 13, 2009

There is no LIKE operator in the Progress 4GL. (There is a LIKE keyword, but it is used for something different.) Instead you need to use MATCHES or CONTAINS operators. I've never used a SQL interface to Progress but it may be the same.

So you could try:

SELECT
    CASE WHEN code MATCHES '*foo*' THEN 'Y' ELSE 'N' END as foo
FROM
    bar

Note - MATCHES uses * for a wildcard instead of %.

Or:

SELECT
    CASE WHEN code CONTAINS 'foo' THEN 'Y' ELSE 'N' END as foo
FROM
    bar