postgresでは、一方のテーブルにdouble precision
データ型を含むカラムがあり、もう一方のテーブルには2つのテーブルを結合しようとするとエラーが発生します。一致する列と私は Amount
フィールドにあるだけのテーブルからのレコードが欲しいです。UNION ALL、倍精度としてNULLをキャストします。
エラー:
"union types text and double precision cannot be matched postgres"
擬似コード:
SELECT * FROM (
SELECT
t1.Amount AS 'amount',
NULL::DATE AS 'date'
FROM Table1 AS t1
UNION ALL
SELECT
/* next line is the issue */
NULL AS 'amount',
t2.Date AS 'date'
FROM Table2 AS t2
) AS FOO
私はこのソリューションは、単純なキャストの問題ですが、検索から何かを見つけることができませんでしたかなり特定感じます。ポストグルでNULL::DOUBLE
の相当品をどうすればいいですか?
EDIT ::後世
syntax is equivalent表現::
キャスト "歴史" のpostgresを指し@klinと@ a_horse_with_no_nameさんのコメントから受け入れ答え:
CAST (expression AS type)
expression::type
そして、ここにあるのpostgres data typesのリスト
「NULL :: INT」を使用して終了し、匂いテストに合格しました(1回)。このキャストの使用方法やドキュメントへのリンクはありますか?前もって感謝します。 – wahwahwah
@wahwahwah:驚くべきことに、構文の章に「Type Casts」という章があります。https://www.postgresql.org/docs/current/static/sql-expressions.html#SQL-SYNTAX-TYPE-CASTS –
[Type Conversion](https://www.postgresql.org/docs/current/static/typeconv.html)にも興味があります。 – klin