概要:このチュートリアルでは、PostgreSQL CAST演算子を使用して、あるデータ型の値を別のものに変換する方法を紹介します。

Introduction to PostgreSQL CAST operator

There is many cases you want to convert value of one data type into another.

以下はCAST型の構文を示しています。

Code language: SQL (Structured Query Language) (sql)

この構文では、まず、定数、テーブル列、値として評価される式などを指定します。

PostgreSQL type cast :: operator

CAST 構文以外に、次の構文を使ってある型の値を別の型に変換できます:

Code language: SQL (Structured Query Language) (sql)

次の例を参照してください。

Code language: SQL (Structured Query Language) (sql)

キャスト演算子(:)を使ったキャスト構文はPostgreSQL固有のもので、標準SQLに準拠していないことに注意してください

PostgreSQL CAST例

それでは、CAST演算子を使用して、ある型の値を別の型の値に変換する例をいくつか挙げてみましょう。

1) 文字列を整数にキャストする例

次の文は文字列定数を整数に変換します:

Code language: SQL (Structured Query Language) (sql)

式を対象の型に変換できない場合、PostgreSQLはエラーを発生させるでしょう。 次の例を参照してください。

Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)

2) 文字列を日付にキャストする例

この例では、CASTを使用して文字列を日付に変換します:

Code language: SQL (Structured Query Language) (sql)

最初に、2015-01-01リテラルストリングを January 1st 2015 に変換しています。 次に、01-OCT-2015October 1st 2015に変換しています。

3) 文字列をダブルにキャストする例

次の例では、文字列 '10.2' をダブル値に変換しようとします:

Code language: SQL (Structured Query Language) (sql)

おっと、次のエラーメッセージが出てしまいました:

Code language: PHP (php)

これを解決するには、次のようにして DOUBLE の代わりに DOUBLE PRECISION を使用する必要があります。

Code language: SQL (Structured Query Language) (sql)

4) 文字列をブール値にキャストする例

この例は、CAST()を使って文字列 ‘true’, ‘T’ を true に、 ‘false’, ‘F’ を false に変換します:

Code language: SQL (Structured Query Language) (sql)

以下がその出力例です。

5) 文字列をタイムスタンプに変換する例

この例では、キャスト演算子(:)を使用して文字列をタイムスタンプに変換します:

Code language: SQL (Structured Query Language) (sql)

6) 文字列を間隔に変換する例

この例では、キャスト演算子を使用して文字列を間隔に変換しています。

Code language: SQL (Structured Query Language) (sql)

以下は出力です:

7) テーブルデータでCASTを使う例

最初に、idと評価という2列からなるratingsテーブルを作成します。 rating 列のデータ型は VARCHAR(1):

Code language: SQL (Structured Query Language) (sql)

次に、いくつかのサンプルデータを ratings テーブルに挿入します。

Code language: SQL (Structured Query Language) (sql)

要件が変わるため、同じ ratings テーブルを使用して、たとえば数字として評価を格納します。

Code language: SQL (Structured Query Language) (sql)

つまり、ratings テーブルには、数値と文字列が混在した値が格納されます。 これを行うには、次のクエリに示すように、CAST型を持つCASE式を使用します。

Code language: SQL (Structured Query Language) (sql)

CASEは評価をチェックし、それが整数パターンに一致する場合、評価を整数に変換し、それ以外の場合は0を返します。

このチュートリアルでは、PostgreSQL CAST を使用して、ある型の値を別の型に変換する方法を学びました。

  • このチュートリアルは役に立ちましたか。

コメントを残す

メールアドレスが公開されることはありません。