Home > Software design >  Get none null column row and other row when its null
Get none null column row and other row when its null

Time:07-02

I have a problem and I wondered if I can do it only with sql.

So I have a table named: tbl, and columns a, b, c which a and b rows aren't null and c can be null, for example:

a b c
a1 b1 NULL
a2 b2 c2
a3 b3 NULL

And I wish to get the result with columns a and x when x is defined: take from b when c is null and take from c if its not null, so the output will be:

a col2
a1 b1
a2 c2
a3 b3

There is a sql command which can do the above?

Thanks

CodePudding user response:

You can use the COALESCE function, given that your DBMS supports it.

SELECT a, 
       COALESCE(c, b)
FROM tab

CodePudding user response:

select a, nvl(c, b) from table;

Thank you

CodePudding user response:

If your DBMS does not support the functions from answers above, you can do it with CASE function:

SELECT
  a,
  CASE
    WHEN c IS NULL THEN b
    ELSE c
    END AS col2
FROM
  tbl
  •  Tags:  
  • sql
  • Related