`
onlyor
  • 浏览: 380983 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

DB2中like使用 locate

    博客分类:
  • db2
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
分享到:
评论

相关推荐

    linux中locate命令使用介绍.docx

    Linux 中 locate 命令使用介绍 Linux 中 locate 命令是一种快速搜索文件系统的命令,通过建立一个包括系统内所有文件名称及路径的数据库,之后当搜索时就只需查询这个数据库,而不必实际深入文件系统之中了。在一般...

    db2使用技巧

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

    DB2 SQL 实现行转列,列转行

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

    Locate32极品磁盘文件搜索工具(中文)

    Locate32是一款高效强大的文件搜索工具,专为Windows用户设计,旨在帮助用户快速、准确地定位计算机中的文件。这款软件以其简洁的界面和出色的性能赢得了用户的青睐,尤其适合那些需要频繁查找特定文件的用户。 ...

    Locate32汉化绿色版

    在日常工作中,我们经常会遇到需要快速定位某个文件的情况,传统的Windows搜索功能可能无法满足这种需求,这时,Locate32就发挥了它的优势。 Locate32的核心在于其采用的数据库技术。它会预先扫描用户指定的硬盘、...

    locate_3.11.7100_汉化

    《locate_3.11.7100_汉化》是一款针对Linux系统中的`locate`命令进行增强和汉化的搜索工具,适用于Windows环境。它提供了更高效、更友好的中文界面,使得用户在查找系统文件时能更加方便快捷。 在原始的`locate`...

    locate32_3.1.11.8220a_fix.zip

    Locate32,作为一个小巧而强大的本地搜索工具,凭借其高效快速的搜索性能,在IT行业中赢得了众多用户的青睐。这个软件的最新版本是Locate32 v3.1 RC3l build 8220a,其中包含了中文语言文件,为中文用户提供了更为...

    Locate32(文件查找)绿色汉化版 V3.1 build 8.09210

    而且,由于Locate32是一个绿色软件,无需安装即可使用,不写入注册表,避免了对系统造成潜在的干扰。 至于V3.1 build 8.09210这个版本,可能会包含一些新特性或改进,例如可能提升了索引速度,优化了用户体验,或者...

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

    * 在WHERE子句中使用LOCATE函数来搜索特定的子串,例如: ```sql SELECT * FROM tablename WHERE LOCATE(colum1, colum2) > 0; ``` 这将搜索colum1中包含colum2的所有行。 * 在ORDER BY子句中使用LOCATE函数来排序...

    DB2 SQL 数据库函数

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

    Locate32,window文件搜索神器

    使用Locate32,你可以输入关键词来查找文件,无论是文件名、文件扩展名,还是文件内容,甚至文件的属性,如创建日期、修改日期等,都可以作为搜索条件。这使得在海量文件中定位特定文件变得轻而易举,极大地提高了...

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

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

    DB2常用函数与Oracle比较

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

    HA_Locate32_v3189210.rar

    标题中的"HA_Locate32_v3189210.rar"指的是Locate32的特定版本——v3.1.8.9210汉化版,它不仅保留了原版的优秀特性,还贴心地提供了中文界面,使得中国用户能够更加便捷地使用。 Locate32的核心功能在于快速查找...

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

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

    打开vivado的.xpr工程文件报错Cannot locate target loade

    在使用Xilinx Vivado设计工具进行FPGA/CPLD开发时,经常会遇到各种各样的问题,其中之一就是在尝试打开一个`.xpr`工程文件时出现“Cannot locate target loader”这样的错误提示。这个问题可能会导致无法正常加载...

    group_concatenate与locate的联合用法示例

    在这个查询中,`CONCAT(',', ext3)`首先将所有用户的`ext3`字段值前面加上一个逗号,以便在`LOCATE`函数中使用。然后,我们查找',1,'是否存在于这个新构建的字符串中。如果`LOCATE`返回0,意味着',1,'不在`ext3`的值...

    解决Can't locate ThreadQueue.pm

    这个问题通常出现在你试图使用一个依赖于ThreadQueue模块的Perl程序,但该模块尚未在你的Perl环境中正确安装。 ThreadQueue是Perl的一个模块,它提供了一个线程安全的队列实现,适用于并发编程或多线程环境中的任务...

    db2常用函数整理.doc

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

Global site tag (gtag.js) - Google Analytics