概要:このチュートリアルでは、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-2015
をOctober 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
を使用して、ある型の値を別の型に変換する方法を学びました。
- このチュートリアルは役に立ちましたか。