logo

Porovnávací řetězec SQL

V této části SQL probereme, jak porovnat dva nebo více řetězců ve strukturovaném dotazovacím jazyce

Můžeme porovnat dva nebo více řetězců pomocí funkce řetězce STRCMP, operátoru LIKE a operátoru Equal.

STRCMP Funkce řetězce

STRCMP je funkce řetězce, která porovnává zadané dva řetězce a dává 0, pokud je délka prvního řetězce rovna délce druhého řetězce. Pokud je délka prvního řetězce větší než délka druhého řetězce, vrátí funkce 1, jinak -1.

Syntaxe funkce STRCMP

 SELECT STRCMP (String_1, String_2); 

Příklady funkce String STRCMP

Příklad 1: Následující dotaz SELECT porovnává délku řetězců JAVATPOINT a EXAMPLES:

 SELECT STRCMP ('JAVATPOINT', 'EXAMPLES'); 

Výstup:

 1 

Příklad 2: Následující dotaz SELECT porovnává délku dvou vět předávaných ve funkci STRCMP:

 SELECT STRCMP ('Website is good', 'javatpoint is good'); 

Výstup:

 -1 

Příklad 3: Následující dotaz SELECT porovnává délku dvou měst:

 SELECT STRCMP ( 'Delhi', 'Noida'); 

Výstup:

 0 

LIKE operátor

Operátor LIKE porovnává konkrétní vzor s každým řádkem pole a vrátí odpovídající hodnoty ve výstupu. Tento operátor se vždy používá s klauzulí WHERE v příkazu SQL.

Syntaxe operátoru Like

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern; 

Příklad operátora LIKE

Vezměme si následující studentskou tabulku:

Číslo_role Jméno Město Stáří Procento Školní známka
101 Akáša Dillí 18 89 A2
102 Bhavesh Kanpur 19 93 A1
103 Yash Dillí dvacet 89 A2
104 Bhavna Dillí 19 78 B1
105 yatin Lucknow dvacet 75 B1
106 Ishaka Ghaziabad 19 91 C1
107 Vivek Goa dvacet 80 B2

Dotaz 1: Následující dotaz zobrazuje záznam těch studentů z výše uvedené tabulky Student, jejichž jméno začíná písmenem 'B':

 SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%'; 

Výstup výše uvedeného dotazu:

Číslo_role Jméno Procento Školní známka
102 Bhavesh 93 A1
104 Bhavna 78 B1

Jak je uvedeno ve výše uvedeném výstupu, tabulka obsahuje pouze záznamy studentů Bhavesh a Bhavna, protože jejich jména začínají písmenem B.

Dotaz 2: Následující dotaz zobrazuje záznam těch studentů z dané tabulky Student, jejichž jméno obsahuje znak 'a' na libovolné pozici:

 SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ; 

Výstup výše uvedeného dotazu:

Číslo_role Jméno Město Stáří Procento Školní známka
101 Akáša Dillí 18 89 A2
102 Bhavesh Kanpur 19 93 A1
103 Yash Dillí dvacet 89 A2
104 Bhavna Dillí 19 78 B1
105 yatin Lucknow dvacet 75 B1
106 Ishaka Ghaziabad 19 91 C1

Rovný operátor (=)

Je to typ operátoru porovnání, který zobrazuje spárovaná data z dané SQL tabulky.

Tento operátor je velmi používán uživateli databáze ve strukturovaném dotazovacím jazyce.

Tento operátor vrací TRUE řádky z databázové tabulky, pokud je hodnota sloupce stejná jako hodnota zadaná v dotazu.

Syntaxe operátoru Equal:

 SELECT * FROM Table_Name WHERE Column_Name = Value; 

Příklad operátora Equal

Vezměme si následující pracovní tabulku:

Worker_Id Pracovní_Jméno Worker_City Pracovní_plat Pracovní_bonus
101 Anuj Ghaziabad 35 000 2000
102 Tushar Lucknow 29 000 3000
103 Vivek Kalkata 35 000 2500
104 Shivam Goa 22 000 3000

Následující dotaz zobrazuje záznam těch pracovníků z tabulky pracovníků, jejichž Worker_Salary je 35 000:

 SELECT * FROM Worker WHERE Worker_Salary = 35000; 

Výstup:

Worker_Id Pracovní_Jméno Worker_City Pracovní_plat Pracovní_bonus
101 Anuj Ghaziabad 35 000 2000
103 Vivek Kalkata 35 000 2500