• 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
  • 相关阅读:
    (原)Lazarus 异构平台下多层架构思路、DataSet转换核心代码
    (学)新版动态表单研发,阶段成果3
    (学) 如何将 Oracle 序列 重置 清零 How to reset an Oracle sequence
    (学)XtraReport WebService Print 报错
    (原)三星 i6410 刷机 短信 无法 保存 解决 办法
    (原) Devexpress 汉化包 制作工具、测试程序
    linux下网络配置
    apache自带ab.exe小工具使用小结
    Yii::app()用法小结
    PDO使用小结
  • 原文地址:https://www.cnblogs.com/zhuawang/p/898631.html
Copyright © 2020-2023  润新知