Home > Enterprise >  Get the last non null value of a table column
Get the last non null value of a table column

Time:05-02

Below is my table and from column B I want to get the value 3 in results.

A B
1 1
2 Null
3 2
4 Null
5 3
6 Null
7 Null
8 Null

Case not working: it should return 10

A B
1 1
2 Null
3 2
4 Null
5 3
6 Null
7 Null
8 10

CodePudding user response:

Use a LIMIT query:

SELECT *
FROM yourTable
WHERE B IS NOT NULL
ORDER BY A DESC
LIMIT 1;

CodePudding user response:

Do you want to get the value '3' because it is the largest in 'B' column?

If so, you can run the following query:

SELECT *
FROM Table
WHERE B IS NOT NULL
ORDER BY B DESC
LIMIT 1;

CodePudding user response:

There is not much to go on in the question. However, assuming that you can order by the col A, the answer would be

SELECT * from table
where B is not NULL
Order by A DESC
Limit 1

If A is numeric, then the order by works fine and you get all 3 non null values from column B. Then Order by descending limit 1 will ensure you get last value of B

CodePudding user response:

You already received really good answers that should help you. I just want to add a futher propose that works fine if both A and B are numeric and they are always sorted like in your example, meaning the highest b entry always has the highest a value.

SELECT MAX(b) FROM tableB
WHERE b IS NOT NULL
HAVING MAX(a);
  • Related