2016-12-15 1 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)에 캐스팅 그렇지 않으면 포스트 그레스가 사용하는 어떤 데이터 유형 모르겠다 필요하다 추가 열에 대해서는 다른 값을 제공하려는 경우 물론 사용할 수 있습니다. 42 as "count" 대신

count은 예약어이므로 식별자로 사용하려면 큰 따옴표를 사용해야합니다. 그러나 다른 이름을 찾는 것이 좋습니다.

CREATE TABLE AS SELECT에 대한 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

예. 그것은 될 수 있습니다. –

관련 문제