InterBase クイック スタート:Part IV - データの整形

提供: InterBase

InterBase クイック スタート:Part IV - データの抽出 へ戻る

データ形式を変更するには、3 つの方法があります:

  • CAST を使用してデータ型を変換する
  • 文字列演算子(||)を使用して文字列を連結する
  • UPPER を使用して文字を大文字に変換する

CAST を使用してデータ型を変換する

検索条件では同じデータ型しか比較できませんが、CAST を使用することにより、この制限を回避することができます。CAST 句の構文は:

CAST ({<value> | NULL} AS data_type)

たとえば、次の WHERE 句では、CAST を使用して CHAR データ型(interview_date)を DATE データ型に変換しています。この変換により、interview_datehire_date と比較することができます:

WHERE hire_date = cast(interview_date AS DATE)

CAST を使用すると、同じテーブルまたはその他のテーブルにある列と比較が可能になります。 CAST では、次の表示に一覧されている変換が可能です:

このデータ型から このデータ型へ

NUMERIC

CHARACTERDATE

CHARACTER

NUMERICDATE

DATE

CHARACTERNUMERIC

Image 025.jpg 文字列を結合するために文字列演算子を使用する

文字列演算子、または、連結演算子(||)とも呼ばれますが、2 つ以上の文字列を、1 つの文字列に結合します。ソースとなる文字列は、クエリの結果でも、指定した文字列でも構いません。

  1. 次の SELECT 文を実行して、クエリの結果と、追加テキスト「 is the manager」を連結させます。 このクエリは、フィールド オフィスではないすべての部署の、マネージャの名前を返します。
    SELECT   d.dept_no,
             d.department,
             e.last_name
                      || ' is the manager'
    FROM     department d,
             employee e
    WHERE    d.mngr_no = e.emp_no
    AND      d.department NOT containing 'Field'
    ORDER BY d.dept_no
    

    結果、次の図のようになっていると思います。

    TutorialFormatting1.png
  2. 文字列は好きなだけ連結させることができます。 次のクエリは、前のクエリを若干変更したものです: マネージャの名を、先の出力に追加しています:
    SELECT   d.dept_no,
             d.department,
             e.first_name
                      || ' '
                      || e.last_name
                      || ' is the manager'
    FROM     department d,
             employee e
    WHERE    d.mngr_no = e.emp_no
    AND      d.department NOT containing 'Field'
    ORDER BY d.dept_no
    

    姓と名の間にスペースを追加するには、スペースを構成する文字列を挿入する必要があります。結果、次の図のようになっていると思います。

    TutorialFormatting2.png

大文字に変換する

UPPER 関数は、文字を大文字に変換します。 たとえば、テーブルの列やドメインの定義の際に、すべての列の値が大文字で入力されているかを確認する CHECK 制約を追加することができます。 次の CREATE DOMAIN 文では、UPPER 関数を使用して、列エントリがすべて大文字であることを保証するようにしています:

CREATE domain projno AS CHAR(5) CHECK (value = upper (value));

次は: