SQL Server CHARINDEX()函数?

时间:2020-02-23 14:32:33  来源:igfitidea点击:

在本文中,我们将学习SQL Server CHARINDEX()函数。

SQL Server CHARINDEX()函数的工作原理

SQL Server具有用于处理和处理字符串数据的各种功能。
CHARINDEX()是此类函数之一。

SQL CHARINDEX()函数使我们能够搜索一个字符串或者一组字符串中的特定子字符串。
此外,如果找到了子字符串,则CHARINDEX()函数返回子字符串在字符串中的位置。

让我们借助示例来理解这个概念。

考虑一个招聘的在线门户。
他们通过收集每个人的详细信息来招募学生/客户以获取安置帮助。
如果所有者希望检查每个电子邮件的电子邮件ID是否符合标准格式,则开发人员可以使用SQL CHARINDEX()函数来实现。

通过使用此功能,他们可以检查输入的电子邮件ID中是否存在字符" @"。

我希望你们已经了解CHARINDEX()函数的工作原理和重要性。

现在,让我们在下一部分中介绍相同的语法。

CHARINDEX()函数的结构

" CHARINDEX()函数"在字符串中搜索特定子字符串的存在。
如果找到,它将返回子字符串的索引。

CHARINDEX(sub-string, data, start_index)

  • sub-string:要搜索的字符串。

  • data:输入字符串的集合。

  • start_index(可选):搜索开始的位置。

此外,如果未找到子字符串,则CHARINDEX()函数将返回零(0)。

现在,让我们通过以下示例实现CHARINDEX()函数。

通过示例实现SQL Server CHARINDEX()函数

在下面的示例中,我们在提供的子字符串中搜索了"。
"的存在。
此外,CHARINDEX()函数已返回其位置。

SELECT CHARINDEX('.', '[email protected]') AS Position;

输出:

18

现在,我们在命令中查找了" Pune"的存在,并将起始索引提供为5。
此外,我们还在下面提供的字符串中寻找了" Name"。

SELECT 
  CHARINDEX('Pune','I live in Pune',5) AS Present_City,
  CHARINDEX('Name','Hello Everyone') AS Name;

可以理解,字符串中不存在子字符串"名称"。
因此,CHARINDEX()函数已返回0。

输出:

带start_index的SQL Server CHARINDEX()函数

现在,我们使用以下数据列创建了一个"信息"表:

  • ID
  • email

此外,我们已将数据插入到SQL Server数据库中创建的表中。

CREATE TABLE Info (
  id INT PRIMARY KEY,
  email VARCHAR (255) NOT NULL
); 

INSERT INTO Info (
 id,
 email
)
VALUES
  (
      1,
    '[email protected]  '
  ),
  (
      2,
    '[email protected]  '
  ),
  (
      3,
    ' georgegmail.com '
  );

现在,我们已经应用CHARINDEX()函数来搜索"电子邮件"列的每个数据值中是否存在" @"。

SELECT email, 
            CHARINDEX('@', email) AS "Presence of @"
FROM Info;