CATEGORII DOCUMENTE |
Operatorul LIKE
De multe ori, cand se doreste obtinerea unor informatii din baza suntem pusi in postura de a nu sti cu exactitate cum se numeste un student sau o carte. Acestea sunt situatiile pentru a caror rezolvare a fost gandit operatorul LIKE
Operatorul LIKE permite compararea unui atribut (expresii) cu un literal utilizand o "masca" construita cu ajutorul specificatorilor multipli % sau _ . Procentul (%) substituie un sir de lungime variabila, 0-n caractere, in timp ce liniuta (_) substituie un singur caracter.
Care sunt cartile din biblioteca care incep cu litera "C"?.
SELECT *
FROM CARTE
WHERE titlu LIKE "C%"
Rezultatul se prezinta ca in figura 4.12.
cota_carte |
titlu |
editura |
domeniu |
an_aparitie |
nr_exemplare |
pret_unitar |
Conception orientee objets |
Adisson-Wesley |
Informatica | ||||
Contabilitate generala |
Eficient |
Contabilitate | ||||
Contabilitate generala |
Macarie |
Contabilitate | ||||
Contabilitate de gestiune |
Macarie |
Contabilitate |
Figura 4.12. Cartile al caror titlu incepe cu litera "C"
Varianta fara LIKE (in VFP):
SELECT * ;
FROM CARTE ;
WHERE LEFT(titlu,1)='C'
S-a folosit functia LEFT() pentru a extrage prima litera din titlu.
Ce carti au titlul continand litera "l " pe a treia pozitie?
SELECT *
FROM CARTE
WHERE titlu LIKE "_ _ l%"
cota_carte |
titlu |
editura |
domeniu |
an_aparitie |
nr_exemplare |
pret_unitar |
Sql. Dialecte |
Polirom |
Informatica | ||||
Politici si optiuni contabile |
Economica |
Contabilitate |
Figura 4.13. Cartile care au pe pozitia a treia din titlu litera "l".
Rezultatul este vizualizat in figura 4.13. Daca exista carti al caror titlu contine litera "L" majuscula pe a treia pozitie, acestea nu sunt extrase in rezultat. Pentru siguranta, in asemenea situatii, solutia este:
SELECT *
FROM CARTE
WHERE titlu LIKE "_ _ l%" OR titlu LIKE "_ _ L%"
Varianta fara LIKE (in VFP)::
SELECT * ;
FROM CARTE ;
WHERE SUBSTR(titlu,3,1)='l' OR ;
SUBSTR(titlu,3,1)='L'
S-a folosit functia SUBSTR() pentru a extrage un subsir (litera L) dintr-un sir (titlu
Titlul caror carti se termina in literele "te"?
SELECT *
FROM CARTE
WHERE titlu LIKE "%te"
cota_carte |
Titlu |
editura |
domeniu |
an_aparitie |
nr_exemplare |
pret_unitar |
Baze de date |
Infomega |
Informatica | ||||
Sql. Dialecte |
Polirom |
Informatica |
Figura 4.14. Cartile al caror titlu se termina in "te".
Varianta fara LIKE (in VFP):
SELECT * ;
FROM CARTE ;
WHERE RIGHT(ALLTRIM(titlu),2)="te"
Observam folosirea functie RIGHT() pentru a extrage caracterele din dreapta in combinatie cu functia ALLTRIM()
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1405
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved