DB2 实现 ORACLE LIKE 关联
来源:互联网 发布:win2008 r2 数据库 编辑:程序博客网 时间:2024/06/08 07:37
最近开发的时候遇到了一个问题,是在使用DB2数据库作查询的时候的问题,需求如下:
已知下表数据,需要自表关联,找出SUB_VALUE_ID 在 VALUE_PARENT_ID 中的所有记录(即VALUE_PARENT_ID 包含 SUB_VALUE_ID 的记录).
表列:
VALUE_IDINTEGERVALUE_NAMEVARCHAR(100)VALUE_PARENT_IDVARCHAR(100)SUB_VALUE_ID INTEGER
表如下:
VALUE_IDVALUE_NAME VALUE_PARENT_ID SUB_VALUE_ID 994AT&T,719,60,60 1282Cricket,61, 61
.
在ORACLE中,这种问题很容易解决,直接关联的时候使用 VALUE_PARENT_ID LIKE '%,' || SUB_VALUE_ID || ',%' 即可,也可以用
INSTR(SUB_VALUE_ID,VALUE_PARENT_ID) <> 0 等其他方法.
但是,在DB2中是不支持关联字段的 LIKE 关联的,如果如ORACLE中写法会报错:
[IBM][CLI Driver][DB2/NT] SQL0132N LIKE 谓词或 POSSTR 标量函数无效,因为第一操作数不是字符串表达式或第二操作数不是字符串。 SQLSTATE=42824
而且,DB2也没有INSTR函数,怎么办呢?
经过查询DB2函数, 得知 DB2 中 LOCATE 函数可以实现ORACLE 中 INSTR类似功能,
LOCATE 返回参数2在参数1中的第一次出现的位置
查询结果: 0 rows......
就这样看,语句是没有问题的,问题只能出在DB2函数那里,LOCATE 没问题, 只可能是 CHAR 函数的问题了,CHAR 函数格式化INTEGER数据时,是按定长的字符格式化的,默认是以 11 位的字符格式化,不足会以空格填充,即当CHAR(60)时,实际上返回的字符串是
60_________ , 这时我们拿这个去和数据作对比是没有结果的,那么知道了问题在哪就好办了.
最后的关联语句的写法是:LOCATE(',' || RTRIM(CHAR(SUB_VALUE_ID)) || ',' , VALUE_PARENT_ID) <> 0 .即可以实现 ORACLE 中的LIKE 关联了.
.
.
- DB2 实现 ORACLE LIKE 关联
- ibatis like mysql oracle sqlserver db2
- oracle中的like 和DB2中的locate
- DB2中like使用
- DB2 LIKE escape-expression
- DB2的like详解
- Like关联查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- js之ActiveX 控件说明 new ActiveXObject();
- 比较杂的
- Android matrix 控制图片的旋转、缩放、移动
- Configure ADF 11.1.2.1.0 on WebLogic 10.3.5
- DataGridView按列顺序导出Excel
- DB2 实现 ORACLE LIKE 关联
- 详解Windows下通过ODBC方式访问PostgreSQL
- PHP MVC及模板引擎
- Oracle的表空间的存储管理与优化技术
- MP3文件格式与编码原理解码流程详解
- Bloom Filter概念和原理
- ruby sinatra web 开发框架
- 音频基础知识及编码原理
- 查看android系统中CPU占用率情况。