Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to update the values of a column in a single query if the value is null then update with the previous not null value [duplicate]

Tags:

sql-server

I have table Salesorder and structure of the table is like this.

Create table Salesorder(SOID int identity, quantity numeric(18,2))

Values in the table is as mentioned below.

insert into Salesorder values(100)
insert into Salesorder values(Null)
insert into Salesorder values(200)
insert into Salesorder values(300)
insert into Salesorder values(Null)
insert into Salesorder values(Null)
insert into Salesorder values(500)
insert into Salesorder values(Null)

So, I want to update this table in that manner so that if I execute select query, I should find below result.

Expected Output:

100
100
200
300
300
300
500
500

It means all null values should be updated with the previous not null values.

like image 523
Neeraj Kumar Yadav Avatar asked Dec 02 '25 01:12

Neeraj Kumar Yadav


1 Answers

Here is working statement:

Update so1
Set quantity = (select top 1 quantity
               from Salesorder so2 
               where so2.quantity is not null and
                     so2.SOID < so1.SOID 
               order by SOID desc)
From Salesorder so1
Where quantity is null;

Fiddle http://sqlfiddle.com/#!6/5a643/30

like image 99
Giorgi Nakeuri Avatar answered Dec 04 '25 15:12

Giorgi Nakeuri