zoukankan      html  css  js  c++  java
  • CHARINDEX函数

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

    主题链接图标 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 值。

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

    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。

    示例

    以下代码示例将返回字符序列 bicycleDocument 表的 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
  • 相关阅读:
    K2 BPM介绍(2)
    K2 BPM介绍(1)
    认识BPM
    使用VS Code发布博客
    IIS 使用 HTTP/2
    IIS 8的第一次请求不变慢如何配置
    C# 图片识别技术(支持21种语言,提取图片中的文字)
    第九讲 C#练习题
    c#基础 第八讲
    c#基础 第六讲
  • 原文地址:https://www.cnblogs.com/zhuawang/p/898631.html
Copyright © 2011-2022 走看看