We're Moving!

The Vertica Forum is moving to a new OpenText Analytics Database (Vertica) Community.

Join us there to post discussion topics, learn about

product releases, share tips, access the blog, and much more.

Create My New Community Account Now


Determining Table Columns that Contain NULL Values — Vertica Forum

Determining Table Columns that Contain NULL Values

Jim Knicely authored this tip.

A client recently asked if we had a Vertica function that could return a list of columns from a table that contains NULL values. There aren’t any built-in functions for that, but there is always a fast solution available in Vertica!

Here’s one!

Example:

dbadmin=> SELECT * FROM null_cols;
 c1 |  c2  | c3  | c4 |  c5
----+------+-----+----+-------
    | TEST | 1.1 |  1 | STUFF
    | TEST |     |  1 | STUFF
    |      |     |  1 | STUFF
  1 | TEST | 1.1 |  1 | STUFF
  1 | TEST | 1.1 |  1 | STUFF
  1 | TEST |     |  1 | STUFF
  1 |      |     |  1 | STUFF
(7 rows)

dbadmin=> CREATE OR REPLACE VIEW null_cols_vw AS
dbadmin->   SELECT COUNT(c1) < COUNT(1) c1_has_nulls,
dbadmin->          COUNT(c2) < COUNT(1) c2_has_nulls,
dbadmin->          COUNT(c3) < COUNT(1) c3_has_nulls,
dbadmin->          COUNT(c4) < COUNT(1) c4_has_nulls,
dbadmin->          COUNT(c5) < COUNT(1) c5_has_nulls
dbadmin->     FROM null_cols;
CREATE VIEW

dbadmin=> SELECT * FROM null_cols_vw;
 c1_has_nulls | c2_has_nulls | c3_has_nulls | c4_has_nulls | c5_has_nulls
--------------+--------------+--------------+--------------+--------------
 t            | t            | t            | f            | f
(1 row)

dbadmin=> INSERT INTO null_cols SELECT 1, 'TEST', 1.1, 1, NULL;
OUTPUT
--------
      1
(1 row)

dbadmin=> UPDATE null_cols SET c1 = 1 WHERE c1 IS NULL;
OUTPUT
--------
      3
(1 row)

dbadmin=> SELECT * FROM null_cols_vw;
 c1_has_nulls | c2_has_nulls | c3_has_nulls | c4_has_nulls | c5_has_nulls
--------------+--------------+--------------+--------------+--------------
 f            | t            | t            | f            | t
(1 row)

Have Fun!

Sign In or Register to comment.