2011-09-28 2 views
-1

5 개의 열이 포함 된 테이블이 있습니다. 어떻게 열 이름을 쓰는 대신 3과 같은 열의 수를 사용하여 테이블의 처음 세 열만 표시 할 수 있습니까?Oracle에 일정 수의 열 표시

+0

왜 그렇게하고 싶습니까? 이것은 거의 확실한 나쁜 생각이며 여기서 설명하지 않은 문제에 대한 잘못된 해결책입니다. – Lunc

+0

@BrokenCrust, Itz는 단지 호기심이 아닙니다. 나는 그것이 가능한지 아닌지에 대해서 생각했다. – Tauseef

답변

1

당신은 그렇게 할 수 없습니다.

이름으로 열을 나열해야합니다. "position"열은 관계형 데이터베이스에서 의미가 없습니다 (행에 "위치"가없는 것처럼).

+0

그건 사실이 아닙니다. 'all_tab_cols'에서'column_id'는 어떻게됩니까? 데이터베이스에 추가 된 순서대로 열이 ** 일반적으로 ** 표시되므로 @Tauseef가 묻는 것처럼 동적으로 쿼리를 만들 수 있습니다. 단 한 번의 선택만으로는 불가능합니다. – Ben

+0

'column_id'는 단지 기술적 인 세부 사항입니다. 관계형 테이블에서 행이나 열은 순서가 없습니다. 현실에서는 특정 명령이 그 명령과 아무 관계가 없다는 것을 알 수 있습니다. DBMS는'SELECT * '를 사용할 때 임의의 순서로 열을 반환 할 수 있습니다. –

+1

여전히 확실하지 않습니다 [Oracle] (http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/statements_10002.htm) "Oracle Database는 객체 생성시 컬럼이 지정된 순서대로 컬럼 세트를 리턴합니다"라고 명시 적으로 지정합니다. 및 [all_tab_cols의 사양] (http://download.oracle.com/docs/cd/B13789_01/server.101/b10755/statviews_1179.htm)에서 'column_id'는 "생성 된 열의 시퀀스 번호"라고되어 있습니다. OP가 사용하는 오라클은 ** 항상 ** user_tab_cols의'column_id' 순서로 열을 반환 할 것입니다. 다르게하지 않는 한 .. – Ben