DB2中的like的使用是有限制的,它后面不能跟一个变量或者是字段,因此,在存储过程或SQL语句中就不能like一个变量或一个字段。

比如有两个表A(a,b,c,d),B(a,b,c,d)。

普遍的用法是:

select * from A where A.b like '%张%'

此语句在任何数据库都是通用的,

但有时也遇到这种情况:

select A.a,B.b from A,B where A.d like B.d||'%'

此语句在oracle中执行没有问题,但在db2中就不行,报以下错误:

SQL0132N  LIKE 谓词或 POSSTR 标量函数无效,因为第一个操作数不是字符串表达式或第二个操作数不是字符串。LOCATE 或 POSITION 标量函数无效,因为第一个操作数不是字符串,或者第二个操作数不是字符串表达式。

此种情况在db2中是使用locate函数,locate用法:

locate(arg1,arg2,pos),在org2中查找arg1第一次出现的位置,pos指明从哪个位置开始查找(省略则从开始查找),如果arg1不为null且查找不到

的话返回0,如果找到则返回大于0的数字。

对于语句:

select A.a,B.b from A,B where A.d like B.d||'%'

在db2中应该修改为:

select A.a,B.b from A,B where locate(B.d,A.d)>0

DB2 like两个表的字段或like一个变量的更多相关文章

  1. SQL技巧两则:选择一个表的字段插入另一个表,根据其它表的字段更新本表内容

    最近,在作django数据表迁移时用到的. 因为在django中,我把本来一个字符型字段,更改成了外键, 于是,哦喝~~~字符型字段相当于被删除了, 为了能导入这些字段的外键信息,于是出此下策. 其实 ...

  2. mysql高效获取两张表共同字段的交集数据

    例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher ...

  3. 怎样将结构完全一样的两个表的内容合并到一个表中,SQL语句

      标签: SQL合并数据 2013-08-21 10:41 489人阅读 评论(0) 收藏 举报  分类: Oracle数据库(14)  select * into 新表名 from (select ...

  4. MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)

    有两张表,info1, info2 . info1: info2: 现在,要用info2中的数据更新info1中对应的学生信息,sql语句如下: UPDATE info1 t1 JOIN info2 ...

  5. SQL两表之间:根据一个表的字段更新另一个表的字段

    update table1 set field1=table2.field1,field2=table2.field2from table2where table1.id=table2.id

  6. 【数据库】SQL两表之间:根据一个表的字段更新另一个表的字段

    1. 写法轻松,更新效率高:update table1 set field1=table2.field1,field2=table2.field2from table2where table1.id= ...

  7. SQL两表之间:依据一个表的字段更新还有一个表的字段

    1. 写法轻松.更新效率高: update table1 set field1=table2.field1, field2=table2.field2 from table2 where table1 ...

  8. SQL 关联两个表的视图总结

    视图就是一条select查询语句,是一张虚拟表. table a  , table b  以表a基表(a LEFT  JOIN b) 1.1 当update view时 更新view中表b字段并且表b ...

  9. EF Core中如何正确地设置两张表之间的关联关系

    数据库 假设现在我们在SQL Server数据库中有下面两张表: Person表,代表的是一个人: CREATE TABLE [dbo].[Person]( ,) NOT NULL, ) NULL, ...

随机推荐

  1. 12.mysql高级查询

    1. mysql 支持三种类型的连接查询: on 后面跟的是关联条件 内连接查询 select s.name,c.name from students as s inner join classes ...

  2. PHP获取照片exif信息

    在这个没图说个屁的年代,照片还是很重要的.如果照片上传后会自动加上 照片相关信息,那用户体验的确会好很多,本着这个想法,今天尝试了下 PHP获取照片exif信息,重要的是 获取图片的GPS信息,如果再 ...

  3. leetcode66

    public class Solution { public int[] PlusOne(int[] digits) { ]; < ) { digits[digits.Length - ]++; ...

  4. leetcode171

    public class Solution { private int ConvertToC(char c) { ; switch (c) { case 'A': case 'a': rnt = ; ...

  5. egret 配置设置

    修改index.html的时候,要主要template文件夹下的web文件夹也有个index.html,两者控制的不一样 初始安装新建项目后调试这样的情况.重新安装引擎和下载egret安装包安装,默认 ...

  6. Simple2D-23(重构)反走样几何图形

    以前 Simple2D 使用 Canvas2D 对象来绘制几何图形,而且渲染出来的几何图形存在明显的锯齿.如果想要抗锯齿的几何图形,则需要开启 OpenGL 的 MSAA,这需要很大的开销. 如果不使 ...

  7. java流输入输出

    java读取txt文件内容.可以作如下理解:  首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了.  通过这条 ...

  8. angularjs动态添加节点时,绑定到$scope中

    <html> <head> <meta charset="utf-8"/> <script src="https://cdn.b ...

  9. hdoj Max Sum Plus Plus(DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 题意:----最大M子段和问题给定由 n个整数(可能为负整数)组成的序列a1,a2,a3,……, ...

  10. hdoj1251-统计难题 【字典树】

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory ...