私のデータベースはPostgres8です。データ型を別のデータ型にキャストする必要があります。つまり、列のデータ型の1つは、ステートメント内のPostgresでvarchar
キャストする必要があります。int
SELECT
現在、文字列値を取得しint
てJavaにキャストしています。
それを行う方法はありますか?サンプルコードをいただければ幸いです。
私のデータベースはPostgres8です。データ型を別のデータ型にキャストする必要があります。つまり、列のデータ型の1つは、ステートメント内のPostgresでvarchar
キャストする必要があります。int
SELECT
現在、文字列値を取得しint
てJavaにキャストしています。
それを行う方法はありますか?サンプルコードをいただければ幸いです。
cast(varchar_col AS int) -- SQL standard
また
varchar_col::int -- Postgres syntax shorthand
これらの構文バリアントは (ほぼ)どこでも有効です。2 番目は、特殊な状況で入れ子の括弧が必要になる場合があります。
そして、構文の制限により関数表記のみが許可されている場合、最初の表記が必要になる場合があります。
さらに 2 つのバリアントがあります。
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
私がどのように書いたかに注意してください。これは内部型名であり、そのために定義された関数もあります。またはとしては機能しません。int4
(varchar_col)
integer()
int()
最後の形式は配列型では機能しないことにも注意してください。またはである必要があります。int[] '{1,2,3}'
'{1,2,3}'::int[]
cast('{1,2,3}' AS int[])
に対して有効であるためinteger
には、文字列はオプションの先行記号 ( +
/ -
) とそれに続く数字のみで構成されている必要があります。先頭/末尾の空白は無視されます。