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');
검색어를 숨기면 어떻게 도와 드릴까요? – Paolo
이 작업을 동적으로 만들려고하십니까? 에서와 마찬가지로, 열이 완전히 null 인 경우 즉석에서 무시하지만 값이 해당 열에 추가되면 전체 열을 반환합니다. – guildsbounty
길드 서치 : 맞습니다. –