Sql DB2在视图中使用LIKE子句和全局变量

Sql DB2在视图中使用LIKE子句和全局变量,sql,view,db2,global-variables,db2-400,Sql,View,Db2,Global Variables,Db2 400,我们在I系列DB2中创建了一个视图,该视图基于在运行语句之前创建并设置的全局变量获取数据: 这是一个巨大的性能提升,但似乎只在使用equals子句时起作用: SET myvariable='foo'; where field = myvariable; 但是,我尝试使用类似于以下内容的LIKE子句进行匹配: SET myvariable='%foo%'; WHERE field LIKE myvariable; 我还尝试了以下方法,将%符号连接起来: SET myvariable='foo'

我们在I系列DB2中创建了一个视图,该视图基于在运行语句之前创建并设置的全局变量获取数据:

这是一个巨大的性能提升,但似乎只在使用equals子句时起作用:

SET myvariable='foo';
where field = myvariable;
但是,我尝试使用类似于以下内容的LIKE子句进行匹配:

SET myvariable='%foo%';
WHERE field LIKE myvariable;
我还尝试了以下方法,将%符号连接起来:

SET myvariable='foo';
WHERE field LIKE '%' || myvariable || '%';
这两种方法都不起作用,而且我在网上找不到任何关于如何在LIKE子句中使用全局变量的示例,所有示例都只针对Equals子句

有什么办法让这场比赛有效吗?

找到了问题


正在创建的变量是CHAR类型而不是VARCHAR类型,因此在连接两侧的%符号之前,需要修剪该值。或者,我可以将其更改为VARCHAR类型

尝试使用
LOCATE()
的可能副本。是否有任何错误?没有错误,只是返回了一个空白记录集。我找到了根本问题,并添加了一个答案。谢谢你的意见@布拉特:这不是复制品。我的上下文或变量设置中没有错误。