用于Progress DB SQL的LIKE运算符

Tar*_*ski 2 sql progress-db case-statement openedge sql-like

我正在尝试在Progress SQL中做这样的事情(这不是POSTGRES!)

SELECT
    CASE WHEN code LIKE '%foo%' THEN 'Y' ELSE 'N' END as foo
FROM
    bar
Run Code Online (Sandbox Code Playgroud)

但是Progress不支持LIKE运算符.INSTR看起来它可能会完成这项工作,但它是一个Progress扩展,我正在使用的数据库不支持.是否有另一种使用标准ODBC函数实现此目的的方法?

谢谢

Dav*_*ebb 5

LIKEProgress 4GL中没有运算符.(有一个LIKE关键字,但它用于不同的东西.)而是你需要使用MATCHESCONTAINS运算符.我从未使用SQL接口进行Progress,但它可能是相同的.

所以你可以尝试:

SELECT
    CASE WHEN code MATCHES '*foo*' THEN 'Y' ELSE 'N' END as foo
FROM
    bar
Run Code Online (Sandbox Code Playgroud)

注- MATCHES使用*一个通配符代替%.

要么:

SELECT
    CASE WHEN code CONTAINS 'foo' THEN 'Y' ELSE 'N' END as foo
FROM
    bar
Run Code Online (Sandbox Code Playgroud)