2009-04-10 3 views
1
는 Postgre에서

, 왜"에서 선택 ABC (선택 1) ABC 같이"생산 "(1)"대신 "1"

select abc from (select 1) as abc 

가 생산을 수행합니다

(1) 

select * from (select 1) as abc 

는 생산 :

1 

정말 저에게 이상합니다. MySQL, Oracle 등의 경우입니까? 내 조건이 실패한 이유를 알아 내는데 시간을 보냈습니다.

답변

4

검색어에 의해 반환 된 행은 다른 유형입니다. 첫 번째 문자는 ROW(INT)이고 두 번째 문자는 INT입니다.

MySQL 등은이 기능이 부족합니다.

첫 번째 쿼리에서는 전체 ROW을 단일 열로 선택합니다.

SELECT abc FROM (SELECT 1, 2) abc 

이 쿼리는 너무 하나의 열을하고 ROW을 입력있다 (1, 2)를 생성합니다.

SELECT abc.col 
FROM (
     SELECT 1 AS col 
     ) abc 
+0

아하 :

INT 값 사용을 선택합니다! 그래서 그것은 기능이 아니라 버그입니다! 감사! 알았어. – Jamol