位置取得の関数

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でのデータ操作のための関数

ワイルドカード文字

ワイルドカード 説明
% 任意の長さの任意の文字列(一致なしも可)
_ 任意の1文字に一致
[ ] [ ] 内のいずれかの文字に一致(例: [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...