`

DB2中使用locate

    博客分类:
  • DB2
阅读更多

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使用技巧

    在 DB2 中,可以使用 "||" 进行字符串连接,这是一种非常方便的字符串操作方式。 二、快速删除大批量数据 在删除大量数据时,使用 delete 语句可能会非常慢,因为删除数据时需要记录数据库日志。为了提高删除速度...

    DB2 SQL 实现行转列,列转行

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

    DB2 SQL 数据库函数

    本文将详细介绍DB2 SQL数据库中的常用函数及其使用方法。 #### 二、数学函数 1. **ABS(exp)**: 返回表达式`exp`的绝对值。 - 示例:`ABS(-10)` 返回 `10`。 2. **ABSVAL(exp)**: 功能与ABS相同,返回表达式的...

    DB2常用函数与Oracle比较

    - **Decimal/Double/Integer/Smallint/Real**: 这些数据类型在DB2和Oracle中都可以直接使用,无需特别的转换函数。 - **Hex**: DB2提供`HEX`函数来将二进制数据转换为十六进制格式。 - **Date/Time/Timestamp**: ...

    SQL_Server,Oracle,DB2数据库SQL语句比较

    - 使用`LOCATE()`。 这些函数用于查找一个字符串在另一个字符串中的位置,对于文本处理非常有用。 ### 九、字符串长度和子字符串提取 #### 1.1.8 字符串长度和子字符串提取 - **SQL Server**: - 使用`LEN()`,...

    DB2常用函数(初学者必备)

    - **Locate/PosStr**: 查找一个字符串在另一个字符串中的位置。 - **Repeat**: 重复字符串指定次数。 - **Replace**: 替换字符串中的某部分。 - **Space**: 创建指定数量的空格字符串。 - **Substr**: 截取字符串的...

    db2常用函数整理.doc

    在DB2中,函数的使用是数据库查询语言SQL的重要组成部分。以下是对DB2常用函数的详细介绍: 1. AVG 函数:这个函数用于计算一组数值的平均值。基本语法是 `AVG(expression)`。它会忽略NULL值,并且如果指定`...

    db2常用语句

    - 相反,当需要将外部文件中的数据加载到DB2数据库表中时,可使用该命令实现数据导入。 ### 3. 表结构管理 - **激活非日志表**:`ALTER TABLE table_name activate NOT LOGGED initially WITH EMPTY TABLE;` - ...

    DB2函数大全

    ### DB2函数大全 在数据库管理系统(DBMS)中,IBM DB2是一款强大的产品,它不仅提供了稳定、高效的数据存储服务,还内置了丰富的SQL函数,这些函数极大地简化了开发...希望本文对您了解和使用DB2中的SQL函数有所帮助。

    db2字符串类型的常用函数

    本文将详细介绍DB2中常用的字符串类型函数,并通过具体示例加以说明,帮助读者更好地理解和运用这些函数。 ### 1. VALUE 函数 VALUE 函数用于将表达式转换为指定的数据类型。其语法结构为:`VALUE(EXPR1 AS TYPE1)...

    DB2函数详解

    本文将深入探讨DB2中的两类重要函数:**聚集函数**和**标量函数**。 #### 一、聚集函数 聚集函数主要用于对一组数据进行计算或汇总,从而得出单一的结果值。在DB2中,常用的聚集函数包括: 1. **AVG**: 计算指定...

    数据库移植注意事项(SQLSERVER,ORACLE,DB2).txt

    - **DB2**: 使用`LOCATE`函数来查找子字符串的位置。例如,`SELECT LOCATE('E', 'ABCDEF') FROM SYSIBM.SYSDUMMY1`。 #### 9. 获取字符串长度 - **SQL Server**: 使用`LEN`函数来获取字符串长度。 - **Oracle** 和...

    oralce和db2兼容开发注意事项

    在Oracle中,视图中使用别名与表字段同名可能不会引发问题,但DB2对此有更严格的限制。当视图别名与表字段同名时,DB2可能会报“SQL0153N”错误。为了避免这种冲突,应当为视图中的列名提供唯一的别名,如在示例中...

    SQL 语言对比

    - **DB2** 使用`LOCATE`函数。 ### 其他函数 - 字符串长度函数在所有数据库中都是一致的,分别为`LEN()`、`LENGTH()`和`LENGTH()`。 - 字符串截取函数也相似,分别是`SUBSTRING()`、`SUBSTR()`和`SUBSTR()`。 ...

Global site tag (gtag.js) - Google Analytics