Funkce pro pozice

Funkce pro práci s daty v SQL Serveru

Ana Voicu

Data Engineer

Funkce pro pozice

  • LEN()
  • CHARINDEX()
  • PATINDEX()
Funkce pro práci s daty v SQL Serveru

LEN()

Definice

  • Vrátí počet znaků zadaného řetězce.

Syntaxe

LEN(character_expression)

Funkce pro práci s daty v SQL Serveru

LEN() – příklad s konstantním parametrem

SELECT LEN('Do you know the length of this sentence?') AS length
|length|
|------|
|40    |
Funkce pro práci s daty v SQL Serveru

LEN() – příklad se sloupcem tabulky

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    |
Funkce pro práci s daty v SQL Serveru

CHARINDEX()

Definice

  • Vyhledá výraz v zadaném řetězci.
  • Vrátí jeho počáteční pozici.

Syntaxe

CHARINDEX (expression_to_find, expression_to_search [, start_location])

Funkce pro práci s daty v SQL Serveru

CHARINDEX() – příklad

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                           |
Funkce pro práci s daty v SQL Serveru

PATINDEX()

Definice

  • Podobné funkci CHARINDEX()

  • Vrátí počáteční pozici vzoru ve výrazu

Syntaxe

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

Funkce pro práci s daty v SQL Serveru

Zástupné znaky

Zástupný znak Vysvětlení
% Shoda s libovolným řetězcem libovolné délky (včetně nulové délky)
_ Shoda s jedním libovolným znakem
[ ] Shoda s libovolným znakem v závorkách [ ] (například [abc] odpovídá znakům a, b nebo c)
Funkce pro práci s daty v SQL Serveru

PATINDEX() – příklad

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        |
Funkce pro práci s daty v SQL Serveru

Pojďme si procvičit!

Funkce pro práci s daty v SQL Serveru

Preparing Video For Download...