`

搜索字符或者字符串_CHARINDEX函数

 
阅读更多

在SQL中,CHARINDEX函数常常用来在一段字符中搜索字符或者字符串。

定义

  返回字符串中指定表达式的起始位置。

相关知识

  语法  

CHARINDEX ( expression1 , expression2 [ , start_location ] )   

参数  

expression1  一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。  expression2  一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。  start_location  在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。  

返回类型  int  

注释  

如果 expression1expression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。  如果 expression1expression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在 expression1expression2 都为 NULL 时返回 NULL 值。  如果在 expression2 内没有找到 expression1,则 CHARINDEX 返回 0。

例子

  例一:  CustomName包含客户的First Name和Last Name,它们之间被一个空格隔开。我们用CHARINDX函数确定两个名字中间空格的位置。通过这个方法,我们可以分析ContactName列的空格位置,这样可以只显示这个列的last name部分。  select top 5 substring(ContactName,charindex(' ',ContactName)+1,len(ContactName)) as [Last Name] from customers  CHARINDEX函数找到First Name和Last Name之间的空格,所以SUBSTRING函数可以分开ContactName列,这样就只有Last Name被选出。在CHARINDEX函数返回的整数上加1,这样Last Name不是从空格开始。  例二:   计算Northwind.dbo.Customer表中Addresses字段中包含单词Road或者它的缩写Rd的记录数,选择语句类似这样:  select count(*) from Northwind.dbo.Customers where CHARINDEX('Rd',Address) > 0 or CHARINDEX('Road',Address)> 0

局限性

  在Oracle 10g中无法使用。提示CHARINDEX 标识符无效


分享到:
评论

相关推荐

    SQLserver中字符串查找功能patindex和charindex的区别

    包括 1、全匹配查找字符串 2、模糊查找字符串 CHARINDEX 和 PATINDEX 函数都返回指定模式的开始位置。PATINDEX 可使用通配符,而 CHARINDEX 不可以。 这两个函数都带有2个参数: 1 希望获取其位置的模式。使用 ...

    SQL Server字符串处理函数大全

    SQL Server字符串处理函数大全 select 字段1 from 表1 where 字段1.IndexOf("云")=1; 这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。 left()是sql函数。 select 字段1 from ...

    CHARINDEX函数

    返回字符串中指定表达式的起始位置。 语法 CHARINDEX ( e­xpression1 , e­xpression2 [ , start_location ] ) 参数 e­xpression1 一个表达式,其中包含要寻找的字符的次序。e­xpression1 是一个短...

    字符串和日期函数总结

    字符串和日期函数charindex(expression,expressionOfMain) expression 代表指定要找的字符串的子串,expressionOfMain代表给定的字符串

    sqlserver中常用函数

    sqlserver中常用函数----字符串函数---- ASCII() --函数返回字符表达式最左端字符的ASCII 码值 CHAR() --函数用于将ASCII 码转换为字符 --如果没有输入0 ~ 255 之间的...CHARINDEX(),PATINDEX() --函数返回字符串

    SQL_Sever数据库常用语句大全.zip

    CharIndex获取字符在字符串中出现的位置 Len函数获取字符串字节长度(中英数都是1字节) Right右截取字符串函数 SubString中间截取字符串函数 Left左截取字符串函数 stuff指定位置插入字符串、删掉字符串函数 查看...

    sql字符串函数大全和使用方法示例

    SQL SERVER支持的字符串函数内容: 代码如下:LEN(string)函数LOWER(string)函数UPPER (string)函数LTRIM(string)函数RTRIM (string)函数SUBSTRING(string,start_position,length)函数CHARINDEX(string,substring)...

    所有关于字符串的处理函数

    由于编程的需要,自己整理出来一套所有的关于字符串处理函数,很好用哦!!!!

    SQL函数

    根据ascii吗取字符 字符串查找 charindex(char_expr,expression) 返回char_expr的起始位置 patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0 2.数学函数 abs(numeric_expr) 求...

    SQL中字符串中包含字符的判断方法

    在sql中我判断包含字符串我们可使用很多方法,如like,replace,charindex函数都可实现我们要的功能,下面我来给各位介绍判断字符串包含字符串sql语句。 通过2个函数CHARINDEX和PATINDEX以及通配符的灵活使用 函数:...

    SqlServer类似正则表达式的字符处理问题

    1. 同一个字符/字符串,出现了多少次 2. 同一个字符,第N次出现的位置 3. 多个相同字符连续,合并为一个字符 4. 是否为有效IP/身份证号/手机号等  一. 同一个字符/字符串,出现了多少次 同一个字符,将其替换为...

    MySQL里实现类似SPLIT的分割字符串的函数

    下边的函数,实现了象数组一样去处理字符串。 一,用临时表作为数组 代码如下: create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@...

    SQL字符串处理函数大全

    select语句中只能使用sql...字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的

    sql函数实现去除字符串中的相同的字符串

    —去除字符串中重復的值函數 create function StringRemove(@str nvarchar(2000)) returns varchar(2000) as begin declare @result nvarchar(2000),@temp nvarchar(1000) set @result=” set @temp=” while...

    软件测试必备数据库资识多年经验总结

    字符串函数 ascii(), 将字符转换为ASCII码, ASCII("abc") = 97 char(), ASCII 码 转换为 字符 low(),upper() str(a,b,c)转换数字为字符串。 a,是要转换的字符串。b是转换以后的长度,c是小数位数。str(123.456,...

    SQL Server中的常用函数汇总

     在SQL server中常用5类的函数:字符串函数,日期函数,数学函数,系统函数,聚合函数。 字符串函数 --常用的字符串函数 1.charindex() -- 字符索引 2.len() -- 长度 3.upper() -- 大写 4.Ltrim() -- ...

    SQL中Charindex和Oracle中对应的函数Instr对比

    sql :charindex(‘字符串’,字段)>0 charindex(‘administrator’,MUserID)>0 oracle:instr(字段,’字符串’,1,1) >0 instr(MUserID,’administrator’,1,1)>0 在项目中用到了Oracle中 Instr 这个函数,顺便仔细的...

    SQL Server字符串切割函数

    代码如下: CREATE FUNCTION fGetStrBySplit ( @Source VARCHAR(max), @Index INT, @SplitChar VARCHAR(1)...–获取总长度 SET @Len = LEN(@Source) –获取切割字符位置 SET @ChIndex = CHARINDEX(@SplitChar,@Source) W

Global site tag (gtag.js) - Google Analytics