在SQL中,CHARINDEX函数常常用来在一段字符中搜索字符或者字符串。
定义
返回字符串中指定表达式的起始位置。
相关知识
语法
CHARINDEX ( expression1 , expression2 [ , start_location ] )
参数
expression1 一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。 expression2 一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。 start_location 在
expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从
expression2 的起始位置开始搜索。
返回类型 int
注释
如果 expression1 或 expression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。 如果
expression1 或 expression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在
expression1 和 expression2 都为 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
标识符无效
分享到:
相关推荐
包括 1、全匹配查找字符串 2、模糊查找字符串 CHARINDEX 和 PATINDEX 函数都返回指定模式的开始位置。PATINDEX 可使用通配符,而 CHARINDEX 不可以。 这两个函数都带有2个参数: 1 希望获取其位置的模式。使用 ...
SQL Server字符串处理函数大全 select 字段1 from 表1 where 字段1.IndexOf("云")=1; 这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。 left()是sql函数。 select 字段1 from ...
返回字符串中指定表达式的起始位置。 语法 CHARINDEX ( e­xpression1 , e­xpression2 [ , start_location ] ) 参数 e­xpression1 一个表达式,其中包含要寻找的字符的次序。e­xpression1 是一个短...
字符串和日期函数charindex(expression,expressionOfMain) expression 代表指定要找的字符串的子串,expressionOfMain代表给定的字符串
sqlserver中常用函数----字符串函数---- ASCII() --函数返回字符表达式最左端字符的ASCII 码值 CHAR() --函数用于将ASCII 码转换为字符 --如果没有输入0 ~ 255 之间的...CHARINDEX(),PATINDEX() --函数返回字符串
CharIndex获取字符在字符串中出现的位置 Len函数获取字符串字节长度(中英数都是1字节) Right右截取字符串函数 SubString中间截取字符串函数 Left左截取字符串函数 stuff指定位置插入字符串、删掉字符串函数 查看...
SQL SERVER支持的字符串函数内容: 代码如下:LEN(string)函数LOWER(string)函数UPPER (string)函数LTRIM(string)函数RTRIM (string)函数SUBSTRING(string,start_position,length)函数CHARINDEX(string,substring)...
由于编程的需要,自己整理出来一套所有的关于字符串处理函数,很好用哦!!!!
根据ascii吗取字符 字符串查找 charindex(char_expr,expression) 返回char_expr的起始位置 patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0 2.数学函数 abs(numeric_expr) 求...
在sql中我判断包含字符串我们可使用很多方法,如like,replace,charindex函数都可实现我们要的功能,下面我来给各位介绍判断字符串包含字符串sql语句。 通过2个函数CHARINDEX和PATINDEX以及通配符的灵活使用 函数:...
1. 同一个字符/字符串,出现了多少次 2. 同一个字符,第N次出现的位置 3. 多个相同字符连续,合并为一个字符 4. 是否为有效IP/身份证号/手机号等 一. 同一个字符/字符串,出现了多少次 同一个字符,将其替换为...
下边的函数,实现了象数组一样去处理字符串。 一,用临时表作为数组 代码如下: create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@...
select语句中只能使用sql...字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的
—去除字符串中重復的值函數 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中常用5类的函数:字符串函数,日期函数,数学函数,系统函数,聚合函数。 字符串函数 --常用的字符串函数 1.charindex() -- 字符索引 2.len() -- 长度 3.upper() -- 大写 4.Ltrim() -- ...
sql :charindex(‘字符串’,字段)>0 charindex(‘administrator’,MUserID)>0 oracle:instr(字段,’字符串’,1,1) >0 instr(MUserID,’administrator’,1,1)>0 在项目中用到了Oracle中 Instr 这个函数,顺便仔细的...
代码如下: CREATE FUNCTION fGetStrBySplit ( @Source VARCHAR(max), @Index INT, @SplitChar VARCHAR(1)...–获取总长度 SET @Len = LEN(@Source) –获取切割字符位置 SET @ChIndex = CHARINDEX(@SplitChar,@Source) W