• 相关软件
    >PATINDEX 创建者:webmaster 更新时间:2006-02-16 15:51

    返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。



    语法


    PATINDEX ( '%pattern%' , expression )



    参数


    pattern



    一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。



    expression



    一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。



    返回类型


    int



    注释


    PATINDEX 对 text 数据类型很有用;除 IS NULL、IS NOT NULL 和 LIKE(这些是 WHERE 子句中对 text 类型有效的仅有的其它比较运算)外,PATINDEX 也可用于 WHERE 子句中。



    如果 patternexpression 为 NULL,则当数据库的兼容级别为 70 时 PATINDEX 返回 NULL;如果数据库兼容级别为 65 或更靠前,则仅当 patternexpression 同时为 NULL 时,PATINDEX 返回 NULL。



    示例


    A. 在 PATINDEX 中使用模式


    本示例查找模式"wonderful"在 titles 表中 notes 列的某一特定行中的开始位置。



    USE pubs
    GO
    SELECT PATINDEX('%wonderful%', notes)
    FROM titles
    WHERE title_id = 'TC3218'
    GO


    下面是结果集:



    ----------- 
    46      

    (1 row(s) affected)


    如果未通过 WHERE 子句限制要搜索的行,查询将返回表中的所有行,对在其中找到该模式的所有行报告非零值,对在其中未找到该模式的所有行报告零值。



    B. 在 PATINDEX 中使用通配符


    本示例使用通配符查找模式"won_erful"在 titles 表中 notes 列的某一特定行中的开始位置,其中下划线为代表任何字符的通配符。



    USE pubs
    GO
    SELECT PATINDEX('%won_erful%', notes)
    FROM titles
    WHERE title_id = 'TC3218'

    GO


    下面是结果集:



    ------------
    46

    (1 row(s) affected)


    如果没有限制要搜索的行,查询将返回表中的所有行,对在其中找到该模式的所有行报告非零值。

    相关文章
    本页查看次数: