`
koreyoshi
  • 浏览: 237427 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于locate函数

    博客分类:
  • db2
阅读更多

由于公司最近将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常用函数详解,进100个常用函数

    DB2常用函数详解,包括进200个常用函数,很详细

    试设计一个实现下述要求的Locate运算的函数

    试设计一个实现下述要求的Locate运算的函数。设有一个带头结点的双向链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freg。所有结点的freg初始都为0...

    C语言中的刷新和定位函数

    本文主要介绍了C语言中的刷新和定位函数。

    MySQL中的LOCATE和POSITION函数使用方法

    不常用:MySQL中的LOCATE和POSITION函数

    MySQL高效模糊搜索之内置函数locate instr position find_in_set使用详解

    常用的一共有4个方法,如下: 1.使用locate()方法 普通用法: SELECT`column`from`table`wherelocate('keyword',`condition`)>0 ...2.使用instr()函数(据说是locate()的别名函数) SELECT `column` from `table`

    最全最新的润乾报表函数文档.doc

    NULL 博文链接:https://diaoweili.iteye.com/blog/768305

    通用的固定长度编码格式的字符串查找算法的实现

    字符串的查找是数据库应用中必不可少的操作,而且每种数据库产品(ORACLE、DB2、SYBASE、MS SQL SERVER、MYSQL等等)也都提供了对应的字符串处理函数,比如DB2的LOCATE函数。 但在实际的工作中,还是会遇到一些特殊...

    DB2 SQL 实现行转列,列转行

    DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列

    locate:还处理隐藏文件和函数名称的部分字符串匹配的 which 命令。-matlab开发

    还处理隐藏文件和函数名称的部分字符串匹配的 which 命令。 操作就像 which 但返回所有出现。 即哪个函数 -all 用于查找部分字符串匹配的可选第二个参数。 检查路径结构中的所有函数,并返回在函数名中观察到指定...

    数据结构单链表

    int Locate(T x); //查找该元素在单链表中的位置 void Insert(int i, T x); //在第i个位置插入该元素 T Delete(int i); //删除第i个元素 void PrintList(); //打印单链表 private: Node<T> *first; //创建...

    MYSQL_MSS_ORACLE函数

    -> 0该函数是多字节可靠的.LOCATE(substr,str,pos) 返回子串substr在字符串str第一个出现的位置,从位置pos开始.如果substr不是在str里面,返回0. mysql> select LOCATE('bar', 'foobarbar',5); -> 7这函数是...

    C语言通用范例开发金典.part2.rar

    ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 ...

    C语言通用范例开发金典.part1.rar

    ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 ...

    C 开发金典

    ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 ...

    数据结构算法实现(严蔚敏版配套实现程序)

    ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 ...

    数据结构 严蔚敏 代码

    ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 ...

    数据结构(王)c元代码

    ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 ...

    数据结构算法实现(严蔚敏版配套实现程序)

    ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 ...

    基于C语言实现三边算法源码

    在 main() 函数中定义了三个已知位置的节点和它们到目标节点的距离,然后调用 locate() 函数计算目标节点的位置,并输出结果。 这个示例代码实现了一个简单的三边定位算法,可以根据实际需求进行扩展和优化。

Global site tag (gtag.js) - Google Analytics