En aquesta secció SQL, parlarem de com comparar dues o més cadenes en el llenguatge de consulta estructurat
Podem comparar dues o més cadenes utilitzant la funció de cadena STRCMP, l'operador LIKE i l'operador Equal.
Funció de cadena STRCMP
STRCMP és una funció de cadena que compara les dues cadenes especificades i dóna 0 si la longitud de la primera cadena és igual a la longitud de la segona. Si la longitud de la primera cadena és superior a la de la segona, la funció retorna 1 en cas contrari -1.
Sintaxi de la funció STRCMP
SELECT STRCMP (String_1, String_2);
Exemples de la funció String STRCMP
Exemple 1: La consulta SELECT següent compara la longitud de les cadenes JAVATPOINT i EXAMPLES:
SELECT STRCMP ('JAVATPOINT', 'EXAMPLES');
Sortida:
1
Exemple 2: La consulta SELECT següent compara la longitud de dues frases que passen a la funció STRCMP:
SELECT STRCMP ('Website is good', 'javatpoint is good');
Sortida:
-1
Exemple 3: La consulta SELECT següent compara la longitud de dues ciutats:
SELECT STRCMP ( 'Delhi', 'Noida');
Sortida:
0
Operador LIKE
L'operador LIKE fa coincidir el patró particular amb cada fila del camp i retorna els valors coincidents a la sortida. Aquest operador sempre s'utilitza amb la clàusula WHERE a la instrucció SQL.
Sintaxi de l'operador Like
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern;
Exemple d'operador LIKE
Prenem la següent taula d'estudiants:
Roll_No | Nom | ciutat | Edat | Percentatge | Grau |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Yash | Delhi | 20 | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | yatin | Lucknow | 20 | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
107 | Vivek | Goa | 20 | 80 | B2 |
Consulta 1: La consulta següent mostra el registre d'aquells estudiants de la taula d'estudiants anterior el primer_nom dels quals comença amb una lletra 'B':
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%';
Sortida de la consulta anterior:
Roll_No | Nom | Percentatge | Grau |
---|---|---|---|
102 | Bhavesh | 93 | A1 |
104 | Bhavna | 78 | B1 |
Com es mostra a la sortida anterior, la taula només conté el registre dels estudiants de Bhavesh i Bhavna perquè els seus noms comencen amb la lletra B.
Consulta 2: La consulta següent mostra el registre d'aquells estudiants de la taula d'estudiants donada el nom de la qual conté el caràcter 'a' en qualsevol posició:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ;
Sortida de la consulta anterior:
Roll_No | Nom | ciutat | Edat | Percentatge | Grau |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Yash | Delhi | 20 | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | yatin | Lucknow | 20 | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
Operador igual (=)
És un tipus d'operador de comparació que mostra les dades coincidents de la taula SQL donada.
Aquest operador és molt utilitzat pels usuaris de bases de dades en llenguatge de consulta estructurat.
Aquest operador retorna les files TRUE de la taula de la base de dades si el valor de la columna és el mateix que el valor especificat a la consulta.
Sintaxi de l'operador Equal:
SELECT * FROM Table_Name WHERE Column_Name = Value;
Exemple d'operador igual
Prenem la següent taula de treballador:
ID_treballador | Nom_treballador | Ciutat_Obrera | Treballador_Salari | Bonificació de treballador |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
102 | Tushar | Lucknow | 29000 | 3000 |
103 | Vivek | Calcuta | 35000 | 2500 |
104 | Shivam | Goa | 22000 | 3000 |
La consulta següent mostra el registre d'aquells treballadors de la taula de treballadors que Worker_Salary és 35000:
SELECT * FROM Worker WHERE Worker_Salary = 35000;
Sortida:
ID_treballador | Nom_treballador | Ciutat_Obrera | Treballador_Salari | Bonificació de treballador |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
103 | Vivek | Calcuta | 35000 | 2500 |