首页 > 解决方案 > 如果两个字符串中都存在子字符串,PLSQL 检查两个字符串

问题描述

我从下面的参数表 varchar 列中有一个预定义的值。

'ENGR 包装类型、文件类型、产品类型、材料类型、包装代码'

所以每当我收到这样的状态消息

'未找到包装代码“F075”'

我想用参数表中的列检查它,然后我想有一个 plsql 情况,条件是如果参数表中存在字符串,它将返回'TRUE'否则'FALSE'。

但下面的我的 PLSQL 查询不起作用。

select CASE WHEN INSTR(upper('PACKAGE CODE "F075" NOT FOUND'), 'ENGR PACKAGE TYPE,DOCUMENT TYPE,PRODUCT TYPE,MATERIAL TYPE,PACKAGE CODE') > 0 THEN
                'TRUE'
            ELSE 'FALSE'
END SAMPLE from dual;

希望你能帮我

标签: sqloracle

解决方案


您的查询将以True下列方式返回。

select 
    case 
        when instr(upper('PACKAGE CODE "F075" NOT FOUND'), 'PACKAGE CODE') > 0 then
            'TRUE'
        else 
            'FALSE'
    end sample 
from 
    dual;

如果您想将所有变体检查为常量值,请使用以下查询

select 
    case 
        when instr(upper('PACKAGE CODE "F075" NOT FOUND'), 'PACKAGE CODE') > 0 then
            'TRUE'
        when instr(upper('PACKAGE CODE "F075" NOT FOUND'), 'ENGR PACKAGE TYPE') > 0 then
            'TRUE'
        when instr(upper('PACKAGE CODE "F075" NOT FOUND'), 'DOCUMENT TYPE') > 0 then
            'TRUE'
        when instr(upper('PACKAGE CODE "F075" NOT FOUND'), 'PRODUCT TYPE') > 0 then
            'TRUE'
        when instr(upper('PACKAGE CODE "F075" NOT FOUND'), 'MATERIAL TYPE') > 0 then
            'TRUE'
        else 
            'FALSE'
    end sample 
from 
    dual;

推荐阅读