Funcții pentru poziții

Funcții pentru manipularea datelor în SQL Server

Ana Voicu

Data Engineer

Funcții de poziție

  • LEN()
  • CHARINDEX()
  • PATINDEX()
Funcții pentru manipularea datelor în SQL Server

LEN()

Definiție

  • Returnează numărul de caractere din șirul furnizat.

Sintaxă

LEN(character_expression)

Funcții pentru manipularea datelor în SQL Server

Exemplu LEN() - parametru constant

SELECT LEN('Do you know the length of this sentence?') AS length
|length|
|------|
|40    |
Funcții pentru manipularea datelor în SQL Server

Exemplu LEN() - parametru coloană

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    |
Funcții pentru manipularea datelor în SQL Server

CHARINDEX()

Definiție

  • Caută o expresie de caractere într-un șir dat.
  • Returnează poziția de start.

Sintaxă

CHARINDEX (expression_to_find, expression_to_search [, start_location])

Funcții pentru manipularea datelor în SQL Server

Exemplu 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                           |
Funcții pentru manipularea datelor în SQL Server

PATINDEX()

Definiție

  • Similar cu CHARINDEX()

  • Returnează poziția de start a unui șablon într-o expresie

Sintaxă

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

Funcții pentru manipularea datelor în SQL Server

Caractere wildcard

Wildcard Explicație
% Potrivire cu orice șir de orice lungime (inclusiv zero)
_ Potrivire cu un singur caracter
[ ] Potrivire cu orice caracter din paranteze [ ] (de ex., [abc] se potrivește cu a, b sau c)
Funcții pentru manipularea datelor în SQL Server

Exemplu 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        |
Funcții pentru manipularea datelor în SQL Server

Să exersăm!

Funcții pentru manipularea datelor în SQL Server

Preparing Video For Download...