2016-12-15 10 views
1

postgresqlの新機能です。私はいくつかの値と空の列を含む一時テーブルを作成したい。ここでは私のクエリですが、実行されていませんが、,(カンマ)にエラーがあります。postgresqlで値と空の列を使用してテンポラリテーブルを作成する方法

CREATE TEMP TABLE temp1 
AS (
SELECT distinct region_name, country_name 
from opens 
where track_id=42, count int) 

どうしたのですか?

selectクエリと他の列を空として使用する値を持つ一部の列を使用して一時テーブルを作成する方法はありますか。

答えて

5

ちょうどNULL値を選択します。

CREATE TEMP TABLE temp1 
AS 
SELECT distinct region_name, country_name, null::integer as "count" 
from opens 
where track_id=42; 

整数(null::integer)へのキャストは、そうでない場合はPostgresが使用するどのようなデータタイプか分からないでしょう、必要です追加の列については、あなたがもちろん使用できる異なる値を供給したい場合、例えば、 42 as "count"代わりに

countは予約済みのキーワードなので、識別子として使用するには二重引用符を使用する必要があります。しかし、別の名前を見つける方が良いでしょう。

CREATE TABLE AS SELECTの文を括弧でくくる必要はありません。

1

あなたのエラーはWHEREの節の近くにあるあなたのステートメントから来ます。

これは動作するはずです:

CREATE TEMP TABLE temp1 AS 
(SELECT distinct region_name, 
     country_name, 
     0 as count 
FROM opens 
WHERE track_id=42) 
1

お試しください。

  CREATE TEMP TABLE temp1 AS 
      (SELECT distinct region_name, 
        country_name, 
        cast('0' as integer) as count 
      FROM opens 
      WHERE track_id=42); 
+0

'キャスト( '0'は整数)'は '0'に簡略化することができます –

+0

はい。かもね。 –

関連する問題