SQL中Charindex和Oracle中对应的函数Instr对比
sql :charindex('字符串',字段)>0 charindex('administrator',MUserID)>0
oracle:instr(字段,'字符串',1,1) >0 instr(MUserID,'administrator',1,1)>0
在项目中用到了Oracle中 Instr 这个函数,顺便仔细的再次学习了一下这个知识。
Oracle中,可以使用 Instr 函数对某个字符串进行判断,判断其是否含有指定的字符。
其语法为:
Instr(string, substring, position, occurrence)
其中
string:代表源字符串;
substring:代表想聪源字符串中查找的子串;
position:代表查找的开始位置,该参数可选的,默认为 1;
occurrence:代表想从源字符中查找出第几次出现的substring,该参数也是可选的,默认为1;
如果 position 的值为负数,那么代表从右往左进行查找。
返回值为:查找到的字符串的位置。
对于 Instr 函数,我们经常这样使用:从一个字符串中查找指定子串的位置。
例如:
SELECT Instr('Hello Word', 'o', -1, 1) "String" FROM Dual 的显示结果是
Instring
————
8
相关推荐
-
oracle截取字符(substr)检索字符位置(instr)示例介绍
一:理论 oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏 常用函数:substr和instr 1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串 解释:string 元字符串 start_position 开始位置(从0开始) length 可选项,子字符串的个数 For example: substr("ABCDEFG", 0); //返回:ABCD
-
Oracle中Like与Instr模糊查询性能大比拼
instr(title,'手册')>0 相当于 title like '%手册%' instr(title,'手册')=1 相当于 title like '手册%' instr(title,'手册')=0 相当于 title not like '%手册%' t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标.但经过实际测试发现,like的效率与instr函数差别相当大.下面是一些测试结果: SQL> set timing on
-
oracle使用instr或like方法判断是否包含字符串
首先想到的就是contains,contains用法如下: select * from students where contains(address, 'beijing') 但是,使用contains谓词有个条件,那就是列要建立索引,也就是说如果上面语句中students表的address列没有建立索引,那么就会报错. 好在我们还有另外一个办法,那就是使用instr,instr的用法如下: select * from students where instr(address, 'beijing
-
Oracle的substr和instr函数简单用法
Oracle的substr函数简单用法 substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符 substr('Hello World',2,4) //返回结果为 'ello' substr('Hello World',-3,3)//返回结果为
-
oracle正则表达式regexp_like的用法详解
/*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE.INSTR.SUBSTR 和REPLACE 用法相同,但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符.POSIX 正则表达式由标准的元字符(m
-
Oracle中instr函数使用方法
INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置.只检索一次,就是说从字符的开始到字符的结尾就结束. 语法如下: instr( string1, string2 [, start_position [, nth_appearance ] ] ) 参数分析: string1 源字符串,要在此字符串中查找. string2 要在string1中查找的字符串. start_position 代表string
-
SQL中Charindex和Oracle中对应的函数Instr对比
sql :charindex('字符串',字段)>0 charindex('administrator',MUserID)>0 oracle:instr(字段,'字符串',1,1) >0 instr(MUserID,'administrator',1,1)>0 在项目中用到了Oracle中 Instr 这个函数,顺便仔细的再次学习了一下这个知识. Oracle中,可以使用 Instr 函数对某个字符串进行判断,判断其是否含有指定的字符. 其语法为: Instr(string, su
-
Oracle中命名块之存储过程的详解及使用方法
一.匿名块和命名块 ◆PL/SQL块分为良好总:命名块和匿名块. ◆匿名块:以declare或begin开始,每次执行匿名块都要通过客户端工具将其发送给Oracle,经过语法分析.编译然后执行. ◆命名块:具有名称的PL/SQL块,这些命名块被存储在Oracle中,编译一次,以后只可调用就可多次执行.如:存储过程.存储函数.包.触发器等. 存储过程:无返回值; 存储函数:有返回值; 包:可容纳多个过程或函数的一个容器(较好管理这些过程和函数,类似于java中的包); 触发器:在合适的
-
在SQL Server和Oracle中创建job
首先说下ms server,因为我也是新手,所以首先选择了使用企业管理器进行任务设定,然后再导出设计完毕的任务脚本,这样就可以在其他数据库中直接通过执行脚本的形式来新建任务了(需要适当修改其中的一些任务名称和数据库名称等值),下面说下具体的操作步骤以及获得的任务脚本: 1. 保证启动ms server的"SQL Server代理服务"(即agent service) 2. 打开企业管理器 -> 连接数据服务器 -> 右键"SQL Server agent"
-
Oracle中SQL语句连接字符串的符号使用介绍
Oracle中SQL语句连接字符串的符号为|| 复制代码 代码如下: select catstr(tcdm) || (',') from T_YWCJ_RWCJR where cjrjh='009846' and rwid='12050' and jsdm='CJY' 拼接成一条数据并连接一个","
-
查询Oracle中正在执行和执行过的SQL语句
查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value 其它网友给出的正
-
oracle中得到一条SQL语句的执行时间的两种方式
oracle中如果需要得到一条SQL语句的执行时间可以用如下2种方式 复制代码 代码如下: SQL> set timing on; SQL> select count(*) from wea; COUNT(*) ---------- 39490 已用时间: 00: 00: 00.06 SQL> select sql_text, elapsed_time from v$sql 2 where sql_text like 'select count(*) from wea'; 未选定行 已用
-
oracle中动态SQL使用详细介绍
1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理.通常,静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式.
-
Oracle中sql语句(+)符号代表连接的使用讲解
oracle中sql语句(+)符号代表连接 (+)在=前边为右连接 (+)在=后边为左连接 SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b.* from a right join b SELECT a.*, b.* from a = b(+)就是一个左连接,等同于select a.*, b.* from a left join b 内连接 常用的连接运算符=.<.> 使用比较运算符根据每个表共有的列的值匹配两个表中的行 外连接 左连接
-
sql – Oracle中匿名TABLE/VARRAY类型示例详解
前言 本文主要介绍的是关于sql Oracle匿名TABLE/VARRAY类型的相关内容,在Oracle中,我有时会创建一些这样的结构 SELECT * FROM TABLE(STRINGS('a', 'b', 'c')) SELECT * FROM TABLE(NUMBERS(1, 2, 3)) 显然,我可以为上述声明我自己的类型.我可以在TABLE和VARRAY之间进行选择.例如: CREATE TYPE STRINGS AS TABLE OF VARCHAR2(100); CREATE T
-
Oracle中执行动态SQL
一.概述 在一般的sql操作中,sql语句基本上都是固定的,如: SELECT t.empno,t.ename FROM scott.emp t WHERE t.deptno = 20; 但有的时候,从应用的需要或程序的编写出发,都可能需要用到动态SQl,如: 当 from 后的表 不确定时,或者where 后的条件不确定时,都需要用到动态SQL. 使用execute immediate语句可以处理包括ddl(create.alter和drop).DCL(grant.revoke).DML(in
随机推荐
- oracle分区索引的失效和重建代码示例
- Windows Powershell 自动化变量
- jQuery prototype冲突的2种解决方法(附demo示例下载)
- iOS如何获取手机的Mac地址
- 使用scrollTop()解决IOS中输入法遮挡输入框问题
- javascript实现表格排序 编辑 拖拽 缩放
- Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
- Python 中 Meta Classes详解
- java多线程入门知识及示例程序
- 在Vue中如何使用Cookie操作实例
- JavaScript 参数中的数组展开 [译]
- 说一说Python logging
- Asp实现假静态
- MySQL中触发器入门简单实例与介绍
- vbs(asp)下的Function 语句
- QRCode.js:基于JQuery的生成二维码JS库的使用
- jquery json 实例代码
- NodeJs读取JSON文件格式化时的注意事项
- 详解spring boot集成RabbitMQ
- Flash简单加密 限制 Flash 在指定域名/网址中播放的方法