Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

TRY_CAST 関数

フォーカスモード
TRY_CAST 関数 - Amazon Redshift

CAST 関数とは異なり、TRY_CAST は最初に式を指定された型にキャストしようとします。変換エラーによりキャストが失敗した場合、オペレーションは null を返します。変換が明示的に許可されていない場合、オペレーションはエラーを返します。許可されている変換のリストは、以下の使用に関する注意事項に記載されています。例えば、ブール値のタイムスタンプへの変換は許可されていません。

構文

TRY_CAST(expression AS type)

引数

expression

1 つ以上の値 (列名、値など) に評価される式。null 値を変換すると、null が返されます。式に、空白または空の文字列を含めることはできません。

type

サポートされているデータ型。データ型の完全なリストについては、「データ型」を参照してください。サポートされているソースデータ型とターゲットデータ型のペアのリストについては、以下の使用に関する注意事項を参照してください。

戻り型

TRY_CAST は、type 引数で指定されたデータ型の値を返します。変換が失敗した場合、オペレーションは null を返します。

使用に関する注意事項

以下は、Amazon Redshift が TRY_CAST でサポートするソースデータ型とターゲットデータ型のペアのリストです。

BOOL

SMALLINT、INT、BIGINT、SUPER

SMALLINT

BOOL、INT、BIGINT、DECIMAL、REAL、FLOAT、BPCHAR、TEXT、VARCHAR、SUPER

INT

BOOL、SMALLINT、BIGINT、DECIMAL、REAL、FLOAT、BPCHAR、TEXT、VARCHAR、SUPER

BIGINT

BOOL、SMALLINT、INT、DECIMAL、REAL、FLOAT、BPCHAR、TEXT、VARCHAR、SUPER

DECIMAL

SMALLINT、INT、BIGINT、REAL、FLOAT、BPCHAR、TEXT、VARCHAR、SUPER

REAL

SMALLINT、INT、BIGINT、DECIMAL、FLOAT、BPCHAR、TEXT、VARCHAR、SUPER

FLOAT

SMALLINT、INT、BIGINT、DECIMAL、REAL、BPCHAR、TEXT、VARCHAR、SUPER

BPCHAR

SMALLINT、INT、BIGINT、DECIMAL、REAL、FLOAT、TEXT、VARCHAR、TIMESTAMP、TIMESTAMPTZ、DATE、TIME、TIMETZ、SUPER

TEXT

SMALLINT、INT、BIGINT、DECIMAL、REAL、FLOAT、BPCHAR、VARCHAR、TIMESTAMP、TIMESTAMPTZ、DATE、TIME、TIMETZ、SUPER

VARCHAR

SMALLINT、INT、BIGINT、DECIMAL、REAL、FLOAT、BPCHAR、TEXT、TIMESTAMP、TIMESTAMPTZ、DATE、TIME、TIMETZ、SUPER

TIMESTAMP

BPCHAR、TEXT、VARCHAR、TIMESTAMPTZ、DATE、TIME

TIMESTAMPTZ

BPCHAR、TEXT、VARCHAR、TIMESTAMP、DATE、TIME、TIMETZ

DATE

BPCHAR、TEXT、VARCHAR、TIMESTAMP、TIMESTAMPTZ

TIME

BPCHAR、TEXT、VARCHAR

TIMETZ

BPCHAR、TEXT、VARCHAR

SUPER

SUPER は、DATE、TIME、TIMETZ、TIMESTAMP、TIMESTAMPTZ を除き、他の任意のデータ型に変換できます。

次の例では、STRING を INTEGER にキャストします。

SELECT TRY_CAST('123' AS INT); int ---- 123

次の例は、null を返します。STRING を INTEGER に変換することは許可されているため、TRY_CAST はエラーを返しませんが、'foo' は整数ではないため、関数は null を返します。

SELECT TRY_CAST('foo' AS INT)

次の例では、BOOLEAN を TIMESTAMP に変換することは許可されていないため、エラーを返します。

SELECT TRY_CAST(true as timestamp);

TRY_CAST は変換が失敗した場合にエラーをすぐに返す代わりに null を返すため、TRY_CAST を使用して無効なデータをフィルタリングできます。次の例では、Akua Mansa の age 列で変換が失敗したために無効な行が除外されます。

CREATE TABLE IF NOT EXISTS student_data( name VARCHAR(100) NOT NULL, age VARCHAR(3) NOT NULL, enrollment_date DATE NOT NULL); INSERT INTO student_data (name, age, enrollment_date) VALUES ('Alejandro Rosalez', '10', '01/01/2000'), ('Akua Mansa', 'Ten', '01/01/2000'); SELECT * FROM student_data WHERE TRY_CAST(age AS INT) IS NOT NULL; --Akua is not returned. name | age | enrollment_date -------------------+-----+----------------- Alejandro Rosalez | 10 | 01/01/2000

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.