もっと詳しく

SQLiteにはcaseステートメントがあり、SQLステートメントに条件付きロジックを含めることができます。 SQLiteのケース式は条件のリストを実行し、結果に基づいて式を返します。 SQLiteのcaseステートメントは、他のスクリプト言語と同様にIF – THEN –ELSEステートメントと同じように動作します。 フレーズが有効な場合は、任意の句またはSQLステートメント内でSQLitecaseステートメントを使用できます。 一般に、SQLite Caseステートメントは、オプションの式と1つ以上のWHEN…THEN句、オプションのELSE句、および必要なENDキーワードで始まります。

SQLiteのCASEステートメントの構文:

SQLiteでは、caseステートメントは通常2つの形式のいずれかを持ちます。

SQLiteの単純なCaseステートメント:

場合 test_statement
いつ [condition1] それから [statement1]
いつ [condition2] それから [statement2]
…..。
…..。
…..。
いつ [condition(n)] それから [statement(n)]
そうしないと [statement]
終わり

上記の構文を使用して、目的の結果に到達するための多くの条件を確立します。 上記の構文では、when句とthen句が使用されています。 それらは論理的な順序で機能します。 最終出力を返すために、このメソッドは各ステートメントをステートメントのリストと比較します。 これは、ユーザーの要件に従ってcaseステートメントを実行するための非常に簡単なアプローチです。 各条件とステートメントは相互に依存しています。つまり、最初の条件が真の場合、ステートメントはその後にのみ実行されます。 このようにして、すべての条件とステートメントが実行されます。 条件がfalseの場合、上記の構文に示されているように、制御はelse部分に移されます。

結果を選択するために、querycaseステートメントはステートメントのリストを評価します。 単純なケース式は単に公平性を探すだけであることに注意してください。 一方、ルックスルーされたケースステートメントは、任意の形式の検査を使用できます。

SQLite Searchのcaseステートメント:

場合 test_statement
いつ [BOOLEAN statement1] それから [statement1]
いつ[BOOLEAN statement2] それから[statement2]
そうしないと [ statement] 終わり

指定されたグループのブールステートメントが有効な場合、Search caseステートメントはそれを評価し、対応する結果を返します。 有効なステートメントが見つからない場合、querycaseステートメントはELSE条件のステートメントを返します。 ELSE句を無視すると、ルックスルーされたcaseステートメントはNULLを返します。 記載された基準が満たされると、検索ケースステートメントは評価と実行を終了します。

SQLiteでCASEステートメントのテーブルを作成します。

まず、テーブルを作成し、CREATEクエリで「Student」という名前を付けました。 テーブルには、データ型が整数のIDや主キーとしてのCreate ID、NAMEなどのさまざまな列が設定され、EMAILはデータ型がTEXTに設定されます。 最後の列CGPAには、TEXTデータ型が割り当てられています。 テーブルStudentとその属性は、SQLiteシェルに次のように表示されます。

作成 テーブル 学生((
…> ID INT 主要な
…> 名前のテキスト
…> メールテキスト
…> CGPA 浮く
…> )。;

ここで、テーブルStudentの各列に対して値を挿入する必要があります。 SQLite INSERTクエリを使用して、テーブルStudentで指定された各列に5つの行を挿入しました。 以下のスクリーンショットは、テーブルの列にレコードを挿入する方法を示しています。

sqlite>> 入れる の中へ 学生 ((2 「イブラヒム」‘[email protected]’ 3.20 )。;
sqlite>> 入れる の中へ 学生 ((3 「マハ」‘[email protected]’ 3.9)。;
sqlite>> 入れる の中へ 学生 ((4 「ジェニファー」 ‘[email protected]’ 2.5)。;
sqlite>> 入れる の中へ 学生 ((5 「リーハン」 ‘[email protected]’ 3.10 )。;

データがStudentテーブルに記録されているかどうかを見てみましょう。 SELECTステートメントを使用して、テーブルStudentのデータ全体をテーブル形式で取得しました。 前述のステートメントは、以下のスクリーンショットに示されています。

sqlite>> 選択する * から 学生;

例1:SQLiteの単純なCASEステートメントを使用するプログラム:

SQLiteでのCASEステートメントの動作を示すために、SELECTステートメントで単純なCASEステートメントを使用しました。

ここでは、SELECTステートメントを使用して、テーブルStudentから列ID、NAME、およびCGPAを選択しました。 その後、StudentのCGPAを比較するCASEステートメントを使用しました。 CGPAが4.00以上であるかどうかの条件とCGPAを一致させます。 もしそうなら、それはそのCGPAにA+を与えます。 ただし、条件がfalseの場合、CASEは次のステートメントに切り替えて、CGPAが3.5より大きいかどうかを確認します。 条件が真の場合、このCGPAにグレード「A」が割り当てられます。

このように、CGPAが指定された条件を満たさなくなるまで、制御は各caseステートメントに渡されます。 すべてのケースがfalseの場合、else句が実行され、ステートメントFAILが出力されます。

sqlite>> 選択する ID 名前 CGPA
…> 場合
…> いつ CGPA > = 4.00 それから 「A+」
…> いつ CGPA > = 3.5 それから 「A」
…> いつ CGPA > = 3.0 それから 「B」
…> いつ CGPA > = 2.5 それから 「C」
…> そうしないと “不合格”
…> 終わり なので “学年”
…> から 学生;

次に、クエリを実行して結果を確認します。 次のようになります。GRADE列は、CASEステートメントの値とともにStudentテーブルに含まれています。

例2:SQLite検索CASEステートメントを使用するプログラム:

結果を判別するために、検索されたCASEステートメントは一連の式を分析します。 単純なCASE式は、単純に等しいかどうかを比較します。 一方、検索するCASE式は、どのような方法でも比較できます。

与えられた例では、ブールのcaseステートメントが使用されています。 このために、テーブルStudentから3つの属性ID、NAME、およびCGPAを選択するSELECTクエリがあります。 これらの属性とそれに対応する値のみが出力として表示されます。 次に、SQLiteCASEステートメントのCASEキーワードがあります。 条件はWHENキーワードで適用されます。 最初に、caseステートメントはCGPAが3.5より大きいかどうかをチェックし、次にグレードAを割り当てます。ここで条件が満たされない場合は、ここで条件が満たされるかどうかをチェックする2番目のcaseステートメントに移動します。 両方のケースがfalseの場合、else部分が実行され、グレードCが出力されます。

sqlite>> 選択する ID 名前 CGPA
…> 場合
…> いつ CGPA >> 3.5 それから 「A」
…> いつ CGPA >> 3.0 CGPA < 2.5 それから 「B」
…> そうしないと
…> 「C」
…> 終わり “学年”
…> から 学生;

上記のCASEクエリを実行すると、次のような結果が得られます。

結論:

この記事では、caseステートメントの基本的な構文について学習しました。 また、さまざまなcaseステートメントのインスタンスも確認しました。 ケースステートメントのルールも教えられました。 この投稿では、SQLiteのcaseステートメントの使用方法とそのタイミングを学びました。

The post SQLiteケースステートメント appeared first on Gamingsym Japan.