`

SQL CHARINDEX (Transact-SQL)

阅读更多
返回字符串中指定表达式的开始位置。

Transact-SQL 语法约定

语法

CHARINDEX ( expression1 ,expression2 [ , start_location ] )


备注
如果 expression1 或 expression2 之一是 Unicode 数据类型(nvarchar 或 nchar)而另一个不是,则将另一个转换为 Unicode 数据类型。CHARINDEX 不能与 text、ntext 和 image 数据类型一起使用。

如果 expression1 或 expression2 之一为 NULL,并且数据库兼容级别为 70 或更高,则 CHARINDEX 将返回 NULL。如果数据库兼容级别为 65 或更低,则 CHARINDEX 将仅在 expression1 和 expression2 都为 NULL 时才返回 NULL 值。

如果在 expression2 内找不到 expression1,则 CHARINDEX 返回 0。

select charindex('18',',22,18,')

返回5.

CHARINDEX 将根据输入的排序规则执行比较操作。若要以指定排序规则进行比较,则可以使用 COLLATE 将显式排序规则应用于输入值。

参数
expression1

一个表达式,其中包含要查找的字符的序列。expression1 是一个字符串数据类别的表达式。

expression2

一个表达式,通常是一个为指定序列搜索的列。expression2 属于字符串数据类别。

start_location

开始在 expression2 中搜索 expression1 时的字符位置。如果 start_location 未被指定、是一个负数或零,则将从 expression2 的开头开始搜索。start_location 可以是 bigint 类型。

返回类型
如果 expression2 的数据类型为 varchar(max)、nvarchar(max) 或 varbinary(max),则为 bigint,否则为 int。

示例
以下代码示例将返回字符序列 bicycle 在 Document 表的 DocumentSummary 列中开始的位置。

复制代码
USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO


下面是结果集:

复制代码
-----------
48         


以下示例将使用可选的 start_location 参数从 DocumentSummary 列的第五个字符开始查找 bicycle。

复制代码
USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary, 5)
FROM Production.Document
WHERE DocumentID = 3;
GO


下面是结果集:

复制代码
-----------
48         

(1 row(s) affected)


以下示例显示了在 expression1 内找不到 expression2 时的结果集。

复制代码
USE AdventureWorks;
GO
SELECT CHARINDEX('bike', DocumentSummary)
FROM Production.Document
WHERE DocumentID =6;
GO


下面是结果集:

复制代码
-----------
0         

(1 row(s) affected)


以下示例使用 COLLATE 函数。

复制代码
USE tempdb;
GO
SELECT CHARINDEX ( 'Test', 'Das ist ein Test'  COLLATE Latin1_General_BIN);
GO

分享到:
评论

相关推荐

    Transact-SQL基本函数集

    Transact-SQL是微软公司为其SQL Server数据库系统开发的一种结构化查询语言。它扩展了标准的SQL语言,增加了一些特殊的函数,用于执行数据库查询。在Transact-SQL中,函数分为多个类别,包括算术函数、字符串函数、...

    数据管理与数据库:第13章 Transact-SQL程序设计.pdf

    数据管理与数据库是IT领域中的核心概念,而Transact-SQL(T-SQL)作为SQL Server的主要编程语言,是数据库管理的重要工具。本章重点介绍了如何进行T-SQL的程序设计,涵盖了数据与表达式、函数以及程序控制流语句等...

    An easy but effective way to split a string using Transact-SQL

    在Transact-SQL中,虽然没有内置的函数直接支持字符串拆分,但我们可以通过一些技巧和自定义函数来实现这一功能。本篇文章将详细探讨一种简单而有效的方法来拆分字符串。 首先,我们要理解的是SQL Server的标准数据...

    17.函数整理(T-SQL 版).pdf

    在本文档中,我们将详细探讨在SQL Server使用的T-SQL(Transact-SQL)中,涉及到的函数的整理。这些函数被分为数学函数和字符串函数两大类,并且详细介绍了每个函数的功能以及它们的基本用法。 一、数学函数 1. 求...

    T-SQL_FileShare

    本文将深入探讨T-SQL(Transact-SQL)在SQL Server中的应用,以及如何使用CTE(公共表表达式)进行递归查询,同时也会涉及如何通过自定义函数处理字符串分隔的问题。 首先,让我们从"T-SQL_FileShare_1_Preparation...

    触发器使用原理和常用T-SQL截取字符串操作

    它们是数据库层面的程序,通常用T-SQL(Transact-SQL)编写,这是SQL Server的扩展语法。 例如,"触发器的使用案例.txt"可能包含以下内容:创建一个触发器来确保每当在员工表中更新薪水时,同时更新部门的总预算。...

    经典SQLServer操作脚本

    在该版本中,了解Transact-SQL(T-SQL)语法、游标、事务管理、视图和存储过程的创建和使用等都是必备技能。 通过学习和运用这些经典脚本,你不仅可以提升SQL Server的使用熟练度,还能提高解决实际问题的能力。...

    T-SQL函数.pptx

    T-SQL是Transact-SQL的简称,它是SQL Server数据库管理系统中的编程语言,用于处理和操作数据。本篇主要探讨的是T-SQL中的函数,包括字符函数、日期函数和数据类型转换函数,以及一些系统函数。 1. 字符函数: - ...

    T-SQL功能:在所有字符之间添加空格

    “SQL-Server-2008”、“SQL-Server-2008R2”和“SQL-Server-2005”则是SQL Server的不同版本,分别代表2008年发布的标准版和2008 R2升级版以及2005年发布的版本。这些标签表明这个功能适用于这些特定版本的SQL ...

    sqlserver函数.docx

    这里我们讨论的是T-SQL(Transact-SQL)中的用户自定义函数(UDF)。以下是对SQL Server函数语法和示例的详细说明。 ### 一、SQL Server函数语法 创建一个新的用户自定义函数,可以使用`CREATE FUNCTION`语句。...

    SQLServer与DB2迁移中的主要差别及解决办法

    SQL Server采用的Transact-SQL与DB2的SQL PL(基于ANSI SQL)在语法上存在差异。Transact-SQL提供了更多的扩展功能和更丰富的编程环境,而DB2则遵循更标准的SQL规范。这意味着在迁移过程中,需要对SQL语句进行调整,...

    SQL中如何实现对字符型字段进行叠加与分割.pdf

    本文主要探讨如何在Transact-SQL(T-SQL)中利用自定义函数来实现这一目标。 首先,我们来看如何对字符型字段进行叠加。在案例中,有学生选修课程的数据,需要将相同姓名的学生选修的所有课程合并为一个字符串,各...

    sqlserver中遍历字符串的sql语句

    这是一段T-SQL(Transact-SQL)代码,它是SQL Server所使用的SQL方言。 接着,代码使用`WHILE`循环结构来持续处理字符串,直到找不到分隔符为止。`CHARINDEX()`函数用于查找分隔符在字符串中的位置,如果返回值不...

    SQL_SERVER_2005常用系统函数【学习总结】

    - **功能**:返回上一条Transact-SQL语句执行后的错误号。 - **示例**: ```sql -- 假设执行了某条可能出错的语句 IF @@ERROR > 0 PRINT 'An error occurred.'; ``` 3. **@@IDENTITY** - **功能**:返回...

    Sql Server 如何去掉内容里面的Html标签

    本文将详细介绍如何使用T-SQL(SQL Server的Transact-SQL扩展)来去除字符串中的HTML标签。 首先,我们来看一下提供的代码片段。这个示例创建了一个名为`dbo.removehtml`的用户定义函数,用于从输入的字符串中删除...

    T-SQL技巧收集??拆分字符串

    在IT行业中,尤其是在数据库管理和开发领域,T-SQL(Transact-SQL)是SQL Server的主要查询语言,用于处理和操作数据。在实际工作中,我们经常遇到需要将一个包含多个值的字符串拆分成单独的行,这通常涉及到字符串...

    sql数据库不能直接用instr函数

    SQL Server数据库使用Transact-SQL语法,而Instr函数是Oracle数据库的专有函数。因此,在SQL Server数据库中,Instr函数将被视为无效的函数名,无法使用。 替代方案 虽然Instr函数不可用,但我们可以使用其他方法...

    TSQL与PLSQL比较

    在数据库编程领域,TSQL(Transact-SQL)和PLSQL(Procedural Language/SQL)是两种广泛使用的SQL方言,分别由微软的SQL Server和甲骨文的Oracle数据库系统支持。它们都提供了丰富的数学函数和操作来处理数值计算,...

Global site tag (gtag.js) - Google Analytics