位置相關函式

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');
|position beginning|position in string|position of non-existing exp|
|------------------|------------------|----------------------------|
|7                 |29                |0                           |
SQL Server 的資料操作函式

PATINDEX()

定義

  • 類似 CHARINDEX()。

  • 回傳運算式中符合樣式的起始位置。

語法

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

SQL Server 的資料操作函式

萬用字元

萬用字元 說明
% 比對任意長度的任意字串(含長度為 0)
_ 比對單一字元
[ ] 比對 [ ] 括號中任一字元(例如,[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...