CHARINDEX()函数SQL Server
CHARINDEX() :
SQL Server 中的此函数有助于返回子字符串在给定字符串中的位置。在此函数中执行的搜索不区分大小写。
句法 :
CHARINDEX(substring, string, [starting_position]
参数 :
该函数接受 3 个参数。
- 子串 –
我们正在搜索的子字符串。它的限制为 8, 000 个字符。 - 字符串–
进行搜索的字符串。 - 起始位置 -
进行搜索的位置。它是一个可选参数。
回报:
- 该函数将返回给定字符串中子字符串的位置。
- 如果在字符串中未找到子字符串,则该函数将返回 0。
适用于以下版本:
- SQL Server 2017
- SQL Server 2016
- SQL Server 2014
- SQL Server 2012
- SQL Server 2008 R2
- SQL Server 2008
- SQL Server 2005
示例-1:
使用 CHARINDEX()函数搜索字符。
SELECT CHARINDEX('k', 'GeeksforGeeks')
As Found ;
输出 :
Found |
---|
4 |
示例 2 :
使用 CHARINDEX()函数搜索子字符串。
SELECT CHARINDEX('fully', 'Life is a journey so live it fully')
As Found ;
输出 :
Found |
---|
30 |
示例 3 :
如果子字符串与给定的字符串不匹配。
SELECT CHARINDEX
('python', 'Geeks for geeks is a well known computer science website')
As Found ;
输出 :
Found |
---|
0 |
示例 4:
在 CHARINDEX()函数中使用“starting_position”参数。
SELECT CHARINDEX
('for', 'Love for all, Hate for none', 10)
As Found ;
输出 :
Found |
---|
20 |
示例 5:
显示 CHARINDEX()函数不区分大小写。
SELECT
CHARINDEX('Bear', 'Bob likes Bear, beer likes bob')
As Found1,
CHARINDEX('bear', 'Bob likes Bear, beer likes bob')
As Found2 ;
输出 :
Found1 | Found2 |
---|---|
11 | 11 |
示例 6 :
使用 COLLATE 子句使函数区分大小写。
SELECT CHARINDEX
('A', 'There is always a need to Develop' COLLATE Latin1_General_CS_AS)
As Found;
输出 :
该函数现在遵循区分大小写的搜索,并且由于它不包含“A”,因此该函数将返回 0。
Found |
---|
0 |