【发布时间】:2012-03-02 14:33:57
【问题描述】:
所以我正在构建一个接受单个参数的查询。该参数基本上是可能出现在列中的字符串。
SELECT ID, SEARCH_STRING
FROM SEARCH_RESULTS
WHERE UPPER(SEARCH_STRING) LIKE UPPER('%test%');
上面的查询完全符合预期。它在表中查找并返回 test 出现在搜索字符串列中的所有记录。
现在我的实际问题。在 SOA 中,我创建了将作为搜索值的参数。价值。基本上查询结束了
SELECT ID, SEARCH_STRING
FROM SEARCH_RESULTS
WHERE UPPER(SEARCH_STRING) LIKE UPPER(#VALUE)
但是我失去了保留通配符的能力。我试过 (%#VALUE%)、('%'#VALUE'%') 和 ('%#VALUE%') 都不起作用。
谢谢大家
【问题讨论】:
-
我不熟悉 SOA,但这可能有用:
...WHERE UPPER(SEARCH_STRING) LIKE '%'||UPPER(#VALUE)||'%'; -
@JeffreyKemp:发表您的评论作为答案^^。
-
谢谢 Jeffrey 串联成功了。处理参数时,您不能直接附加通配符,因为参数会自动直接添加值的格式,因此直接在参数旁边添加 % 不起作用。我想昨晚深夜做同样的事情,今天早上第一件事就是测试它。