Introducere în funcțiile de șir comune ale SQL Server

funcțiile de șir SQL încorporate vă permit să găsiți și să modificați valorile textului, cum ar fi tipurile de date VARCHAR și CHAR, în sqlserver. Folosind aceste funcții puteți modifica o valoare de text, cum ar fi schimbarea ” Smith, Joe „la” Joe Smith.”

dacă nu sunteți familiarizați cu funcțiile SQL, atunci aș recomanda să vă uitați cu introducerea funcțiilor încorporate SQL Server.

pentru a profita la maximum de acest lucru și alte lecții noastre asigurați-vă că pentru a practica folosind exemplele!,

toate exemplele pentru această lecție se bazează pe Microsoft SQL Server Management Studio și baza de date AdventureWorks2012. Puteți începe să utilizați aceste instrumente gratuite folosind ghidul meu Noțiuni de bază folosind SQL Server.

Introducere în funcțiile șir SQL Server

funcțiile șir T-SQL sunt utilizate pentru a manipula sau returna informații despre expresia textului, cum ar fi tipurile de date CHAR și VARCHAR.

există multe funcții de șir în SQL la dispoziția dumneavoastră., În general, le-aș clasifica ca:

  • poziție
  • transformare
  • set de caractere
  • Soundex

toate funcțiile sunt listate pe pagina String Functions (Transact-SQL). Aș recomanda vizitarea acelei pagini pentru a afla despre fiecare funcție.

în loc să reiterăm acest material, ne vom concentra pe funcțiile pe care le-am văzut în mod obișnuit utilizate în afaceri.

în tabelele următoare am clasificat funcțiile și le-am codificat prin culori. Codul de culoare corespunde probabil capota v-ar folosi această funcție special într-un mediu de afaceri., Verde sunt cel mai probabil să fie utilizate, și roșu mai puțin.

aceasta nu este o scară strictă și toate funcțiile au o utilizare în unele cazuri de afaceri, dar am vrut o modalitate de a vă ajuta să câștigați câmpul la cele mai relevante.

Aici este încercarea mea:

SQL Server Șir de Funcții – Funcții Utilizate în mod obișnuit în Verde

Funcții folosit pentru a găsi Poziția

CHARINDEX

CHARINDEX funcție este utilizată pentru a găsi poziția de un șir de caractere în altul., Acest lucru poate fi util atunci când trebuie să spargeți datele prin liniuțe sau virgule.

forma generală pentru CHARINDEX funcție este

CHARRINDEX(value to find, value to search)

în cazul în Care valoarea a găsi unul sau mai multe caractere pe care doriți să găsiți, în valoare de căutare.

dacă valoarea este găsită, atunci poziția de pornire este returnată. Dacă valoarea nu este găsită, atunci 0 (zero) este returnat.

Dacă fie valoarea de găsit, fie valoarea de căutat sunt nule, atunci NULL este returnat.

CHARINDEX în acțiune!,

LEN

funcția LEN returnează numărul de caractere într-un șir.în exemplul următor puteți vedea că lungimea „SQL Server” este 10.

Exemplu de funcția LEN

Lungime este rar folosit pe cont propriu. Este utilizat în principal împreună cu alte funcții, cum ar fi stânga și dreapta.,

funcții utilizate pentru transformarea șirurilor

stânga și dreapta

funcțiile stânga și dreapta sunt utilizate pentru a returna porțiunea de început sau de sfârșit a unui șir.

stânga va returna caracterele de început; în timp ce, dreapta este folosit pentru a returna caracterele de sfârșit.

forma generală pentru funcția din stânga este

LEFT(value, length)

unde valoarea este șirul cu care lucrați și lungimea este numărul de caractere pe care doriți să le returnați de la începutul valorii.,

Exemplu de Funcția de STÂNGA

în Cazul în care lungimea este mai mare decât numărul de caractere din valoare, atunci întregul șir este returnat.

dacă lungimea este negativă, este aruncată o eroare.

dacă lungimea sau valoarea sunt nule, atunci NULL este returnat.

funcția șir dreapta funcționează la fel ca stânga, dar returnează caracterele care se termină, spre deosebire de început.

SELECT RIGHT(‘SQL Rocks!’,6)

returnează valoarea ‘Rocks!,’

Să presupunem că managerul de producție dorește o listă distinctă a tuturor prefixelor de numere de produs. Cum ai putut returna lista?dacă te uiți la producție.Produs ProductNumber valoare coloană veți observa prefixul este primele două caractere. Deci, știind ce facem acum despre funcția din stânga, soluția este într-o clipă!

Iată ce puteți scrie:

SELECT DISTINCT LEFT(ProductNumber,2)FROM Production.Product

funcția din stânga returnează primele două caractere. Deoarece folosim operatorul DISTICT, rezultatele duplicate sunt eliminate din rezultat.

OK deci acum managerul de producție devine nebun!, Ultimul caracter al prefixului ProcuctNumber înseamnă mult pentru ea. Vrea să știe care sunt acele valori distincte. Ce putem face pentru a ajuta?

putem folosi stânga și dreapta împreună. Știm deja cum să obținem cele mai multe caractere din stânga, acum tot ce trebuie să facem este să luăm ultimul caracter din acel rezultat și să-l returnăm așa cum se arată mai jos.

Cuiburi Funcția de a reveni caractere.,

Aici este de interogare puteți folosi:

SELECT DISTINCT RIGHT(LEFT(ProductNumber,2),1)FROM Production.Product

Ca și alte funcții, puteți cuib șir de funcții. Amintiți-vă că rezultatele unei funcții pot fi utilizate în alta. Ar trebui să citiți aceste expresii din ” inside out.”

subșir

funcția subșir este utilizată pentru a returna caractere dintr-un alt șir.,

forma generală a SUBȘIR funcție este

SUBSTRING(value, position, length)

în cazul în Care valoarea este șirul lucrezi, poziție este caracterul de a începe întoarcerea de caractere, iar lungimea este numărul de caractere pentru a reveni.

dacă lungimea este negativă, se returnează o eroare.

Dacă poziția sau lungimea sunt nule, atunci NULL este returnat.

SUBȘIR Exemplu

De exemplu,

SUBSTRING(‘SQL Server’,5,3)

a se întoarce ‘Ser’., Este secvența de trei caractere care încep în poziția a cincea.

SUBSTRINGUL este o formă generalizată a funcțiilor din stânga și din dreapta.credit suplimentar-arată cum stânga și dreapta pot fi utilizate împreună pentru a simula SUBSTRING. Afișați răspunsul dvs. în comentariile de mai jos.

stânga („SQL Server”, 4) și subșir („SQL Server”, 1,4) ambele returnează începutul patru caractere.

dreapta este un pic mai complicat!

dreapta („SQL Server”, 4) poate fi scris ca subșir („SQL Server”, 7,4)

care spune să înceapă de la poziția a 7-a și apoi să returneze următoarele patru caractere., Forma generală pentru aceasta, deoarece nu veți cunoaște întotdeauna lungimea valorii, este

SUBSTRING(‘SQL Server’, LEN(‘SQL Server’)-4, 4)

aici este un exemplu folosind coloane SQL.

Căror rezultate sunt

Rezultatele arată SUBȘIR fel ca STÂNGA și DREAPTA

SUPERIOARE și INFERIOARE

SUPERIOARE și INFERIOARE șir de funcții sunt utilizate pentru a returna valori ale cărui caractere sunt în toate superioară sau inferioară cazul respectiv.,

forma generală pentru funcția superioară este

UPPER(value)

unde valoarea este șirul cu care lucrați.

dacă valoarea este NULL, atunci NULL este returnat.

forma și comportamentul pentru inferior sunt similare.

Aici este un exemplu de interogare:

Care se întoarce

Exemple folosind SUPERIOARE și INFERIOARE

REPLACE

funcția De înlocuire este bună atunci când doriți să găsiți unul sau mai multe caractere într-o usture și să le înlocuiască cu alte personaje., O aplicație comună este de a înlocui toate liniuțele ” – ” cu spații.

Aici este forma generală a ÎNLOCUI funcția

REPLACE (value, pattern, replacement)

în cazul în Care valoarea este șir pentru a lucra cu, modelul este porțiunile de șir doriți să găsi și înlocui, și de înlocuire este valoarea pentru a înlocui modelul.

Dacă oricare dintre parametrii sunt NULL apoi înlocuiți returnează NULL.dacă modelul nu este găsit, nimic nu este înlocuit și valoarea este returnată în forma sa originală.,

în afaceri, veți găsi date din două sisteme separate, cum ar fi sistemele dvs. și sistemele unui client sau furnizor, în care datele sunt tratate diferit. Acest lucru poate cauza probleme, mai ales atunci când vine vorba de potrivire.

odată ce problema comună pe care am văzut-o apare cu numerele pieselor. Luați În Considerare Lucrările De Aventură. În cadrul companiei, numerele pieselor sunt formatate cu liniuțe, cum ar fi „AR-5381”; cu toate acestea, unii furnizori au înlocuit liniuțele cu spații precum „ar 5381”.,

înainte de a face o potrivire de date la scară largă, echipa de producție dorește să pună la dispoziția furnizorilor lista noastră de piese cu liniuțele înlocuite cu spații.

Aici este o interogare am putea să facem așa:

SELECT Name, ProductNumber, REPLACE(ProductNumber,'-',' ') as SupplierProductNumberFROM Production.Product

Iar rezultatul va putem oferi la furnizori este:

Deși nu poate fi gol model, și dacă te gândești la asta, că nu face prea mult sens, puteți înlocui un model cu un gol de valoare. De ce? Ei bine, un motiv bun este să scoți caracterele dintr-un șir.,

în exemplul ProductNumber, pot exista cazuri în care dorim să folosim numărul produsului fără liniuțe. Această interogare ar putea fi utilizată în acest caz:

SELECT Name, ProductNumber, REPLACE(ProductNumber,'-','') as SupplierProductNumberFROM Production.Product

observați că două ghilimele unice împreună ca ” reprezintă un șir gol.

LTRIM și RTRIM

LTRIM și RTRIM sunt folosite pentru a elimina de conducere și la sfârșit spații de șir.

LTRIM este utilizat pentru a elimina spațiile de la începutul șirului; întrucât RTRIM elimină spațiile de la sfârșitul anului.

forma generală pentru LTRIM este

LTRIM(value)

unde valoarea este șirul cu care doriți să lucrați., Dacă valoarea este NULL, atunci NULL este returnat.

De exemplu, ia în considerare

SELECT LTRIM(' Product Types')

Care se întoarce ‘Tipuri de Produse’

Dacă doriți să eliminați spațiile de la începutul și sfârșitul unui șir puteți să ne-ambele funcții.

SELECT RTRIM(LTRIM(' Product Types '))

elimină atât spațiile de conducere, cât și cele de sfârșit.aceste funcții vin la îndemână atunci când importați date din fișiere text, în special fișiere formatate fixe.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *