2014-10-17 3 views
0

60 개의 열과 약 10000 개의 행을 반환하는 SELECT 문 (함수 사용)이 있습니다. 일부 열에는 NULL 값만 포함되어 있으므로 선택에서 제외하려고합니다. 이 일을 할 수있는 방법이 있습니까?값이 NULL이 아닌 열만 선택하십시오.

쿼리는 tablfunc 기능을 포함하여 약간 복잡이지만, 결과는 아주 좋은입니다

--------+-------+--------+---------+---------+ 
ID  |column1| column2| ...  |column60 | 
--------+-------+--------+---------+---------+ 
1  | 1  | NULL | 52.5 | 15  | 
... | ... | ... | ...  | ...  | 
10000 | 2  | NULL | 87.5 | 3  | 
--------+-------+--------+---------+---------+ 

내가 2 열을 선택하지 않으려는이 경우.

쿼리는 다음과 같습니다 당신은 명시 적으로 같은 선택 열을 지정할 수

select * from dma.ct_fafajkod_pont 
    ('select a.pont, a.faj, a.tom from 
     (select 
        f.ppont_azon pont, 
        fl.mezonev faj, 
        case WHEN f.tom08::integer=1 then 2.5 WHEN f.tom08::integer=2 then 12.5 WHEN f.tom08::integer=3 then 35 WHEN tom08::integer=4 then 75 else 0 END + 
        case WHEN f.tom920::integer=1 then 2.5 WHEN f.tom920::integer=2 then 12.5 WHEN f.tom920::integer=3 then 35 WHEN tom920::integer=4 then 75 else 0 END + 
        case WHEN f.tom2135::integer=1 then 2.5 WHEN f.tom2135::integer=2 then 12.5 WHEN f.tom2135::integer=3 then 35 WHEN tom2135::integer=4 then 75 else 0 END + 
        case WHEN f.tom3650::integer=1 then 2.5 WHEN f.tom3650::integer=2 then 12.5 WHEN f.tom3650::integer=3 then 35 WHEN tom3650::integer=4 then 75 else 0 END + 
        case WHEN f.tom51::integer=1 then 2.5 WHEN f.tom51::integer=2 then 12.5 WHEN f.tom51::integer=3 then 35 WHEN tom51::integer=4 then 75 else 0 END tom 
        from field.fafaj f, field.fafajlista fl where f.fajnev=fl.fafaj_kulcs) a 
      order by 1,2', 
    'select distinct fl.mezonev from field.fafajlista fl order by 1'); 
+1

검색어를 숨기면 어떻게 도와 드릴까요? – Paolo

+3

이 작업을 동적으로 만들려고하십니까? 에서와 마찬가지로, 열이 완전히 null 인 경우 즉석에서 무시하지만 값이 해당 열에 추가되면 전체 열을 반환합니다. – guildsbounty

+0

길드 서치 : 맞습니다. –

답변

0

:

SELECT ID, column1 FROM table; 

아니면 here을 제안 할 스키마에서 직접 열을 선택하고 제외 할 수 원하지 않는 것들 :

편집 :guildsbounty's comment above을 읽은 후, 나는이 대답이 당신이 그것을 동적으로하고 싶다면 도움이되지 않는다는 것을 깨닫는다.

+1

감사합니다.하지만 동적으로 처리해야합니다. 또한 함수를 편집 할 수 없지만이 경우 아마도 도움이 될 것입니다. –

관련 문제