select
count(col_1),
count(col_2),
count(col_3)
from
<table>
döner (en azından Oracle, yani.) Örneğin
drop table tq84_count_nulls;
create table tq84_count_nulls (
col_1 varchar(50),
col_2 number,
col_3 date
);
insert into tq84_count_nulls values (null, null, null);
insert into tq84_count_nulls values ('xx', null, null);
insert into tq84_count_nulls values (null, 42, null);
insert into tq84_count_nulls values ('yy', 12, null);
select
count(col_1),
count(col_2),
count(col_3)
from
tq84_count_nulls;
döner
COUNT(COL_1) COUNT(COL_2) COUNT(COL_3)
------------ ------------ ------------
2 2 0
col_3 öğesinin yalnızca sıfırlardan oluştuğunu belirten.
Bu fikir, istenen görünümü oluşturmak için kullanılabilir. döner seçildiğinde
drop table tq84_count_nulls;
create table tq84_count_nulls (
col_1 varchar(50),
col_2 number,
col_3 date,
group_id varchar(2)
);
insert into tq84_count_nulls values (null, null, null, 'a');
insert into tq84_count_nulls values ('xx', null, null, 'a');
insert into tq84_count_nulls values (null, 42, null, 'a');
insert into tq84_count_nulls values ('yy', 12, null, 'a');
insert into tq84_count_nulls values (null, null, null, 'b');
insert into tq84_count_nulls values (null, null, null, 'b');
insert into tq84_count_nulls values (null, 42, null, 'b');
insert into tq84_count_nulls values (null, 12, null, 'b');
create or replace view nulls_per_type as
with n as (
select
count(col_1) col_1_count,
count(col_2) col_2_count,
count(col_3) col_3_count,
group_id
from
tq84_count_nulls
group by
group_id
),
o as (
select case col_1_count when 0 then 'COL_1 is always 0 for ' || group_id else null end u from n union all
select case col_2_count when 0 then 'COL_2 is always 0 for ' || group_id else null end u from n union all
select case col_3_count when 0 then 'COL_3 is always 0 for ' || group_id else null end u from n
)
select * from o where u is not null;
hangisi,:
tablo şimdi de * group_id * ihtiyacı
select * from nulls_per_type;
COL_1 is always 0 for b
COL_3 is always 0 for a
COL_3 is always 0 for b
Yani IS NOT NULL tabloismi İTİBAREN, bir sorguyla istediğiniz sadece olacak dönüş Aslında veri içeren 40 sütun? Ve eğer diğer 10'dan biri bir değer elde ederse, sorgunuz daha sonra 41 sütun döndürecek? – MartW
Aynı tabloda, her biri için ayrı bir görünüme sahip olmak istediğiniz farklı "tür" veya "tür" kayıtlarınız var gibi görünüyor. Kaydın "türünü" tanımlayan bir sütun var mı? –
Evet, bu doğru @CodeByMoonlight. –