sql server 2008 - SQL Update First record of Duplicate row in table -
i looking update first record when duplicate found in table.
create table tblauthor ( col1 varchar(20), col2 varchar(30) ); create table tblbook ( col1 varchar(20), col2 varchar(30), col3 varchar(30) ); insert tblauthor (col1,col2) values ('1', 'john'), ('2', 'jane'), ('3', 'jack'), ('4', 'joe'); insert tblbook (col1,col2,col3) values ('1', 'john','book 1'), ('2', 'john','book 2'), ('3', 'jack','book 1'), ('4', 'joe','book 1'), ('5', 'joe','book 2'), ('6', 'jane','book 1'), ('7', 'jane','book 2'); the update result want accomplish should update records follows. tblbook.col3 = 1st.
select * tblbook ('1', 'john','1st'), ('3', 'jack','1st'), ('4', 'joe','1st'), ('6', 'jane','1st'); can't seem done distinct.
use row_number assign number each row grouped author's name (col2) , update ones have number of 1
update tblbook set col3 = '1st' col1 in( select col1 ( select tblbook.col1, tblbook.col2, tblbook.col3, row_number() on (partition tblbook.col2 order tblbook.col1) rownum tblbook left outer join tblauthor on tblbook.col2 = tblauthor.col2 ) [t1] [t1].rownum = 1 )
Comments
Post a Comment