我有一个表,其中包含数百万条记录和50个奇数列,其中许多列对于表中的所有记录都具有空值。如何编写一个SQL查询来告诉我哪些列具有所有空记录?
答案 0 :(得分:1)
您可以使用bool_and:
WITH sample (column1, column2, column3) AS (
VALUES
('LOREM IPSUM', 'LOREM IPSUM', NULL),
('LOREM IPSUM', 'LOREM IPSUM', NULL),
('LOREM IPSUM', 'LOREM IPSUM', NULL),
('LOREM IPSUM', 'LOREM IPSUM', NULL),
('LOREM IPSUM', NULL, NULL)
)
SELECT
bool_and(column1 IS NULL) AS is_column1_entire_null,
bool_and(column2 IS NULL) AS is_column2_entire_null,
bool_and(column3 IS NULL) AS is_column3_entire_null
FROM
sample
文档引用:
(...)如果所有输入值均为true,则为true,否则为false
答案 1 :(得分:1)
如果您想知道哪些列的所有null值都意味着没有行具有值,则该行的计数将为0,所以只需检查一下即可。
<div *ngFor='let person of persons'>
<p> {{ person.roles.label.join(',') }} </p>
</div>
答案 2 :(得分:0)
暴力破解方法类似于:
select concat_ws(',',
(case when count(*) <> count(col1) then 'col1' end),
(case when count(*) <> count(col2) then 'col2' end),
(case when count(*) <> count(col3) then 'col3' end),
. . .
) as columns_with_null_values
from t;