位置函数

在 SQL Server 中使用函数处理数据

Ana Voicu

Data Engineer

位置函数

  • LEN()
  • CHARINDEX()
  • PATINDEX()
在 SQL Server 中使用函数处理数据

LEN()

定义

  • 返回给定字符串的字符数。

语法

LEN(character_expression)

在 SQL Server 中使用函数处理数据

LEN() 示例——常量参数

SELECT LEN('Do you know the length of this sentence?') AS length
|length|
|------|
|40    |
在 SQL Server 中使用函数处理数据

LEN() 示例——表列参数

SELECT DISTINCT TOP 5 
    bean_origin, 
    LEN(bean_origin) AS length
FROM ratings;
|bean_origin             |length|
|------------------------|------|
|Toscano Black           |13    |
|Trinite                 |7     |
|Ocumare- Puerto Cabello |23    |
|Maracaibo- El Rosario   |21    |
|Madagascar              |10    |
在 SQL Server 中使用函数处理数据

CHARINDEX()

定义

  • 在给定字符串中查找字符表达式。
  • 返回其起始位置。

语法

CHARINDEX (expression_to_find, expression_to_search [, start_location])

在 SQL Server 中使用函数处理数据

CHARINDEX() 示例

SELECT 
 CHARINDEX('chocolate', 'White chocolate is not real chocolate'),
 CHARINDEX('chocolate', 'White chocolate is not real chocolate',10),
 CHARINDEX('chocolates', 'White chocolate is not real chocolate');
|开头位置|字符串中的位置|不存在表达式的位置|
|--------|--------------|------------------|
|7       |29            |0                 |
在 SQL Server 中使用函数处理数据

PATINDEX()

定义

  • 类似于 CHARINDEX()

  • 返回表达式中匹配模式的起始位置

语法

PATINDEX ('%pattern%', expression, [location ])

在 SQL Server 中使用函数处理数据

通配符字符

通配符 说明
% 匹配任意长度的字符串(可为零)
_ 匹配单个字符
[ ] 匹配方括号内任一字符(如 [abc] 匹配 a、b 或 c)
在 SQL Server 中使用函数处理数据

PATINDEX() 示例

SELECT 
  PATINDEX('%chocolate%', 'White chocolate is not real chocolate') AS position1,
  PATINDEX('%ch_c%', 'White chocolate is not real chocolate') AS position2;

|position1|position2|
|---------|---------|
|7        |7        |
在 SQL Server 中使用函数处理数据

开始练习吧!

在 SQL Server 中使用函数处理数据

Preparing Video For Download...