logo

SQL比較文字列

この SQL セクションでは、構造化照会言語で 2 つ以上の文字列を比較する方法について説明します。

STRCMP 文字列関数、LIKE 演算子、および Equal 演算子を使用して、2 つ以上の文字列を比較できます。

STRCMP 文字列関数

STRCMP は、指定された 2 つの文字列を比較し、最初の文字列の長さが 2 番目の文字列の長さと等しい場合に 0 を返す文字列の関数です。最初の文字列の長さが 2 番目の文字列の長さより長い場合、関数は 1 を返し、それ以外の場合は -1 を返します。

STRCMP関数の構文

 SELECT STRCMP (String_1, String_2); 

STRCMP 文字列関数の例

例 1: 次の SELECT クエリは、JAVATPOINT 文字列と EXAMPLES 文字列の長さを比較します。

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

出力:

 1 

例 2: 次の SELECT クエリは、STRCMP 関数に渡される 2 つの文の長さを比較します。

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

出力:

 -1 

例 3: 次の SELECT クエリは 2 つの都市の長さを比較します。

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

出力:

 0 

「いいね!」演算子

LIKE 演算子は、特定のパターンとフィールドの各行を照合し、一致した値を出力で返します。この演算子は常に SQL ステートメントの WHERE 句とともに使用されます。

Like 演算子の構文

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

LIKE 演算子の例

次の Student テーブルを考えてみましょう。

ロール番号 ファーストネーム パーセンテージ 学年
101 アカシュ デリー 18 89 A2
102 バベシュ カンプール 19 93 A1
103 ヤシュ デリー 二十 89 A2
104 バーヴナ デリー 19 78 B1
105 ヤティン ラクナウ 二十 75 B1
106 イシャカ ガーズィヤーバード 19 91 C1
107 ヴィヴェク 行きます 二十 80 B2

クエリ 1: 次のクエリは、上記の Student テーブルから、First_Name が「B」文字で始まる学生のレコードを示します。

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

上記のクエリの出力:

ロール番号 ファーストネーム パーセンテージ 学年
102 バベシュ 93 A1
104 バーヴナ 78 B1

上記の出力に示されているように、名前が B で始まるため、テーブルには Bhavesh と Bhavna の学生の記録のみが含まれています。

クエリ 2: 次のクエリは、指定された Student テーブルから、First_Name の任意の位置に文字「a」が含まれる学生のレコードを表示します。

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

上記のクエリの出力:

ロール番号 ファーストネーム パーセンテージ 学年
101 アカシュ デリー 18 89 A2
102 バベシュ カンプール 19 93 A1
103 ヤシュ デリー 二十 89 A2
104 バーヴナ デリー 19 78 B1
105 ヤティン ラクナウ 二十 75 B1
106 イシャカ ガーズィヤーバード 19 91 C1

等号演算子 (=)

これは、指定された SQL テーブルから一致したデータを表示する比較演算子の一種です。

この演算子は、構造化照会言語のデータベース ユーザーによって頻繁に使用されます。

この演算子は、列の値がクエリで指定された値と同じである場合に、データベース テーブルから TRUE 行を返します。

Equal 演算子の構文:

 SELECT * FROM Table_Name WHERE Column_Name = Value; 

等価演算子の例

次の Worker テーブルを見てみましょう。

Worker_Id 従業員名 労働者_都市 労働者_給与 労働者_ボーナス
101 アヌジ ガーズィヤーバード 35000 2000年
102 トゥシャール ラクナウ 29000 3000
103 ヴィヴェク コルカタ 35000 2500
104 シヴァム 行きます 22000 3000

次のクエリは、Worker_Salary が 35000 である Worker テーブルの従業員のレコードを表示します。

 SELECT * FROM Worker WHERE Worker_Salary = 35000; 

出力:

Worker_Id 従業員名 労働者_都市 労働者_給与 労働者_ボーナス
101 アヌジ ガーズィヤーバード 35000 2000年
103 ヴィヴェク コルカタ 35000 2500