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)> 1
- 浏览: 26810 次
相关推荐
`CHARINDEX`是SQL语言中的一个内置函数,用于在字符串中查找特定子串的起始位置。这个函数在数据检索和处理中非常有用,尤其是在需要筛选包含特定字符或字符串的数据时。下面我们将深入探讨`CHARINDEX`的用法、参数...
### CHARINDEX函数详解 #### 一、函数简介 **CHARINDEX** 函数是数据库系统中常用的字符串处理函数之一,主要用于返回一个字符串(`expression2`)中另一个子字符串(`expression1`)的起始位置。如果在指定的字符...
包括 1、全匹配查找字符串 2、模糊查找字符串 CHARINDEX 和 PATINDEX 函数都返回指定模式的开始位置。PATINDEX 可使用通配符,而 CHARINDEX 不可以。 这两个函数都带有2个参数: 1 希望获取其位置的模式。使用 ...
### SQL Server CHARINDEX 和 PATINDEX 详解 在 SQL Server 数据库管理系统中,处理字符串是非常常见的需求之一。CHARINDEX 和 PATINDEX 是两个非常实用且强大的函数,用于搜索字符串中的指定模式或子串,并返回该...
在SQL Server中,`CHARINDEX`、`PATINDEX`和`LIKE`是三种常见的文本搜索函数,它们在处理字符串匹配时各有特点。本篇文章将详细分析这三个函数在SQL Server 2008环境下针对不同场景的性能和适用性。 1. `CHARINDEX`...
在数据库查询语言SQL中,有时候我们需要在字符串中查找特定字符或子串的位置,这时就可以使用`Charindex`(在SQL Server中)和`Instr`(在Oracle中)这两个函数。它们都提供了查找子串在主字符串中出现位置的功能,...
SELECT SUBSTRING(FBILLNO, 1, CHARINDEX('-', FBILLNO) - 1) ``` 这将截取 FBILLNO 字段中的字符串,从第一个字符开始,直到找到第一个 "-" 字符之前的所有字符。 2. LEFT 函数 LEFT 函数是 SQL Server 中截取...
SET @SingleValue = SUBSTRING(@Old_IP,@CharIndex,@CurrPoint - @CharIndex) SET @Cache = cast(@SingleValue as numeric)*16777216 SET @CharIndex = @CurrPoint + 1 SET @CurrPoint = CHARINDEX('.',@Old_IP...
字符串截取在SQL Server中可以通过多种函数来实现,包括SUBSTRING、CHARINDEX、REPLACE等。截取特定字符前面或后面的部分,或者用逗号分隔的字符串需要使用这些函数的组合。 ### 两张表一起更新的做法 在SQL ...
- `LEFT(STUFF(shangpindata, 1, CHARINDEX(',', shangpindata), ''), CHARINDEX(',', STUFF(shangpindata, 1, CHARINDEX(',', shangpindata), '')) - 1)` 最终返回 `"5"`,即原始字符串 `"3,5,2"` 中间位置的值。...
在这种情况下,可以使用`CHARINDEX`函数来优化查询,尤其是当需要处理的关键词列表可能会频繁变化时。 `CHARINDEX`函数在SQL Server中被广泛使用,它类似于字符串的`indexOf`方法,用于在一个字符串中查找指定的子...
本文将为读者详细讲解 SQL Server 中字符串分隔与拼接的实例,包括创建函数、使用字符串函数 CHARINDEX 和 STUFF 等知识点。 字符串分隔与拼接实例 在实际应用中,我们经常需要将多个字符串连接起来,或者将一个...
CHARINDEX('*', @str, CHARINDEX('*', @str) + 1) - CHARINDEX('*', @str) - 1) ``` 这将返回`'3000|3000'`。 #### 3. 反转字符串 在某些情况下,可能需要对字符串进行反转。SQL Server中可以通过`REVERSE`函数...
SET @SourceString = SUBSTRING(@SourceString, @CharIndex + 1, LEN(@SourceString) - @CharIndex); IF RTRIM(@RecordValue) <> '' BEGIN INSERT INTO @ReturnTable VALUES (@RecordNum, @RecordValue); SET ...
select id,name,SUBSTRING(name,2,1) as 中文数字,charindex(SUBSTRING(name,2,1),'一二三四五六七八九十') as 中文数字所在位置 from LiWei 按中文所在位置排序 select * from LiWei order by...
例如,`CHARINDEX('E', 'HELLO')` 返回2,因为"E"在"HELLO"中的位置是2。 4. DIFFERENCE:计算两个字符串的相似度,返回0到4之间的值,4表示非常相似。例如,`DIFFERENCE('HELLO', 'hell')` 返回4,因为它们非常...