db2中like使用locate函数情况及解析
来源:互联网 发布:海上风电 知乎 编辑:程序博客网 时间:2024/06/07 01:27
转载自:关于locate函数
由于公司最近将oracle项目移植到db2 中间出现了很多兼容性问题,这里主要记录下hibernate中模糊查询的兼容性问题
例子(hql):from table t where t.name like '%' || t.displayName || '%';
如果遇到这种情况,在oracle里面是完美兼容,到了db2就出问题了
解决方案:使用locate函数,上面这种情况可以修改成如下
from table t where locate(t.dispalyName,t.name)>0;//这里等于1就等同于上面sql语句的结果
from table t where locate(t.dispalyName,t.name)=1;,//1就是在name中从第一位开始匹配displayName
from table t where locate(t.dispalyName,t.name)=0;//等于0的结果是排除模糊匹配到的结果,也就是查出匹配不到的所有数据;
from table t where locate(t.dispalyName,t.name)=2;//2就是在t.name中从第二位开始匹配dispalyName;
接下来=3,4,5,6相信大家都理解了.
locate(String param1,String param2,int param3) 从param2的第param3位置开始,返回param1第一次出现的位置,param3为负数的情况暂时还没去研究.
hibernate中使用locate会根据你配置的不同方言去解析对应的函数
注意:oracle中locate的参数是反的!!!!
在oracle中要达到上面例子的结果要这样写:from table t where locate(t.name,t.dispalyName)=1;
下面是官方实例(可以参考):
LOCATE 函数 [String]
返回一个字符串在另一个字符串中的位置。
语法
参数
返回值
注释
另请参见
标准和兼容性
示例
- db2中like使用locate函数情况及解析
- DB2中like使用
- DB2 LOCATE 函数的使用
- oracle中的like 和DB2中的locate
- db2中instr和locate
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- DB2数值函数简介及使用
- DB2字符函数简介及使用
- DB2日期时间函数简介及使用
- DB2数值函数简介及使用
- DB2日期时间函数简介及使用
- PL/SQL中LIKE函数使用变量 PL/SQL中LIKE函数使用变量
- SQL之查询函数LOCATE、POSITION、INSTR、FIND_IN_SET、IN、LIKE
- 【iOS_GitHub】购物车类的抛物线动画(支持上抛或者下抛) && 阻尼动画(弹球动画)
- 即将找工作的仿徨
- 夜间模式的简单实现
- centos7安装python-pip
- SIFT算法详解
- db2中like使用locate函数情况及解析
- poj3696 The Luckiest number
- 2016秋季练习
- 减少选择让你节省时间
- 建议117:使用SSL确保通信中的数据安全
- 【Go语言】基本类型排序和 slice 排序
- Linux diff 命令
- Java的for循环应用
- 黑客学习路线