カテゴリ: COBOL 更新日: 2025/11/25

COBOLで学ぶWHERE句の条件付き検索!初心者向けデータ取得の基本

WHERE句を使った条件付き検索の例
WHERE句を使った条件付き検索の例

先生と生徒の会話形式で理解しよう

生徒

「先生、COBOLでデータベースから特定の条件に合うデータだけ取得することってできますか?」

先生

「できます。それがWHERE句を使った条件付き検索です。SQLの基本のひとつで、指定した条件に合うレコードだけを抽出できます。」

生徒

「具体的にはどのように使うのですか?」

先生

「それでは、実際に例を見ながら説明しましょう。」

1. WHERE句とは?

1. WHERE句とは?
1. WHERE句とは?

COBOLでデータベースを操作するとき、WHERE句は検索条件を指定するために使います。たとえば、社員テーブルから特定の部署に所属する社員だけを取得したい場合に利用します。条件付き検索を行うことで、必要なデータだけを効率的に抽出できます。

2. WHERE句の基本構文

2. WHERE句の基本構文
2. WHERE句の基本構文

COBOLでSQLを埋め込む場合、EXEC SQLEND-EXECで囲んで書きます。WHERE句を使った基本的な構文は次の通りです。


EXEC SQL
    SELECT EMPLOYEE_ID, EMP_NAME, DEPT
    INTO :EMP-ID, :EMP-NAME, :EMP-DEPT
    FROM EMPLOYEE
    WHERE DEPT = :TARGET-DEPT
END-EXEC.

この例では、社員テーブル(EMPLOYEE)から、指定した部署(TARGET-DEPT)に所属する社員のID、名前、部署を取得しています。

3. WHERE句で使える条件

3. WHERE句で使える条件
3. WHERE句で使える条件

WHERE句では次のような条件が使えます。

  • = : 等しい(例:DEPT = '営業')
  • < > : 等しくない(例:AGE <> 30)
  • <, <=, >, >= : 大小比較(例:SALARY > 50000)
  • AND, OR : 複数条件の組み合わせ(例:DEPT = '営業' AND SALARY > 50000)
  • BETWEEN : 範囲指定(例:AGE BETWEEN 25 AND 35)
  • LIKE : 部分一致検索(例:EMP_NAME LIKE '山田%')

条件を工夫することで、より柔軟な検索が可能になります。

4. 実践例:営業部の社員を検索する

4. 実践例:営業部の社員を検索する
4. 実践例:営業部の社員を検索する

WORKING-STORAGE SECTION.
01  EMP-ID     PIC 9(4).
01  EMP-NAME   PIC X(20).
01  EMP-DEPT   PIC X(10).
01  TARGET-DEPT PIC X(10) VALUE '営業'.

PROCEDURE DIVISION.
    EXEC SQL
        SELECT EMPLOYEE_ID, EMP_NAME, DEPT
        INTO :EMP-ID, :EMP-NAME, :EMP-DEPT
        FROM EMPLOYEE
        WHERE DEPT = :TARGET-DEPT
    END-EXEC.

    IF SQLCODE = 0
        DISPLAY "検索成功:" EMP-NAME " (ID:" EMP-ID ")"
    ELSE
        DISPLAY "検索失敗:" SQLCODE
    END-IF.

検索成功:田中太郎 (ID:1001)

この例では、営業部の社員だけを検索し、成功すれば名前とIDを表示しています。SQLCODEでエラーをチェックすることで、安全にデータを取得できます。

5. 初心者向けポイント

5. 初心者向けポイント
5. 初心者向けポイント

WHERE句を使うと、必要なデータだけを効率的に取得できます。プログラミング未経験の方でも、条件を工夫すれば抽出したいデータを簡単に指定できるのがポイントです。また、SQLCODEやSQLSTATEを使って検索結果やエラーを確認する習慣をつけることで、安全にデータベース操作ができるようになります。

6. 複数条件での検索

6. 複数条件での検索
6. 複数条件での検索

複数条件を組み合わせる場合、ANDやORを使用します。


EXEC SQL
    SELECT EMPLOYEE_ID, EMP_NAME
    INTO :EMP-ID, :EMP-NAME
    FROM EMPLOYEE
    WHERE DEPT = :TARGET-DEPT
      AND SALARY > 50000
END-EXEC.

このようにすれば、営業部で給与が50000以上の社員だけを抽出できます。複雑な条件もWHERE句で簡単に指定できるのがCOBOLの特徴です。

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方