我有一个古怪的问题。我有一个复选框,一个报告表,我想点击一个复选框或多个复选框来返回结果。在数据库中,我有一个由冒号分隔的复选框结果的保存列表:
这一切都有效,除非我勾选方框' A'和' C'。这是数据库中的第一个也是最后一个结果。我可以点击A和B或只是A或只是C或C和B但是当我点击A和C时它不起作用。
任何线索?
select ...
from ...
where
AND (CASE WHEN :P1_BENEFITS_TAG IS NOT NULL
THEN instr( ':'|| UPPER(b.BENEFITS_TAGS)||':',
':'|| UPPER(:P1_BENEFITS_TAG) ||':' )
ELSE 1
END) > 0
答案 0 :(得分:2)
您的数据库行似乎包含字符串' A:B:C:'。
时间:P1_BENEFITS_TAG是任何值' A:B',' B:C',' A',' B'或者' C'那么数据库行"包含"该值和您的INSTR
表达式将返回一个数字> 0
然而,' A:B:C'不包含字符串' A:C',因此INSTR将返回0。