2011-01-20 5 views
2

나는 75 개의 열이있는 테이블을 가지고 있습니다. 값이있는 열만을 표시하는 sql 문은 무엇입니까?빈 열 숨기기

감사

+4

해당 진술은 ** 존재하지 않습니다 ** - ** 행 ** 데이터를 숨길 수 있습니다 - 그러나 열은 아닙니다 –

+1

열에 가치가없는 경우 열이있는 이유는 무엇입니까? –

+1

@Joel이 상황은 너무 빈번합니다 (열은 나중에 사용할 준비가되어 있으며 사용할 수 없기 때문에 여전히 삽입되지 않았습니다 ...) – bluish

답변

2

그것은 비슷한 문장의 (a SELECT 당신이 아니라 열에 만 행에 대한 조건 필터를 사용할 수있는) 존재하지 않는 것은 사실이다. 그러나 당신은 절차을 작성하려고 할 수 있습니다. 쿼리를 사용하여 어느 것이 적어도 NULL/공백 값이 아닌 열이 있는지 확인해야합니다. 이 열 목록을 가져올 때 각 열 사이에 쉼표가있는 문자열로 조인하고 실행할 수있는 쿼리를 작성하여 원하는 것을 반환합니다.

편집 : 나는 그것에 대해 생각 나는 당신이 절차를 수행 할 수 있지만, 이러한 조건 중 하나에 생각 :

  • 이 과정에서 동적으로 열 이름을 검색 할 수있는 방법을 찾아, 즉 메타 데이터는 (그것에 대해 들어 본 적이없는,하지만 난 절차를 새로 온)

  • 또는 하드 코드 모든 열 이름 (잃어버린 일반성)

당신은 때마다 당신의 DBMS 지원 배열의 저장 프로 시저 경우, 배열 내부의 열 이름을 수집 (또는 C와 같은 프로그래밍 언어의 프로 시저를 작성) 및 루프 그들에, 만드는 SELECT

점검 빈 열인지 아닌지를 나타냅니다. 값이 하나 이상이면 문자열에 연결하고 열 이름은 쉼표로 구분됩니다.. 마지막으로 비어 있지 않은 열만 사용하여 쿼리를 만들 수 있습니다!

스토어드 프로 시저 대신, 더 유연하게 처리 할 수있는 프로그램 (예 : Java)을 작성할 수 있습니다.

* 당신이 NULL 값을 확인하면 간단 할 것이다, 그러나 당신이 빈 값을 확인하는 경우는 각 열 데이터 유형 ... 데이터 유형과 다른 배열을 관리해야합니까?

0

SELECT 문을 작성하고 표시하고자하는 COLUMNS을 정의한 다음 해당 QUERY를 VIEW으로 저장하는 것이 좋습니다.

이렇게하면 쿼리를 실행할 때마다 열 이름을 입력하는 번거 로움을 줄일 수 있습니다.

설명에서 marc_s가 지적했듯이 데이터 열을 숨기는 select 문은 없습니다.

+1

뷰 생성시 빈 컬럼이 반드시 그런 식으로 머무를 필요는 없지만 목록은 동적이어야합니다. 나는 이것이 왜 필요하게 될지 상상할 수 없다. –

+0

@ 마틴 : 결과를 볼 때 특정 열을보고 싶지 않기 때문에 영업 사원이 열 숨기기에 대해 질문한다는 가정이 있습니다. 그리고 그는 결과를 볼 때 숨기거나 원하지 않는 열을 이미 알고 있습니다. – VoodooChild

0

미리 구문 분석을 수행하고이를 수행하기 위해 동적으로 명령문을 작성할 수 있지만 SQL 성능 관점에서 수행하는 것은 매우 비효율적입니다. 당신이하려고하는 것에 대해 강력하게 충고 할 것입니다.