Update
1) How update works internally ?
----------------------------
-- -- Oops! SQL column swap or SQL column clobber? -- create table #temp (PK int identity, c1 int, c2 int); insert into #temp values (1,2); insert into #temp values (3,2); insert into #temp values (2,1); insert into #temp values (5,2); insert into #temp values (5,3); select * from #temp order by PK; -- -- Swap columns c1 and c2 on a -- row-by-row basis if c1 > c2 -- update #temp set c1 = c2, c2 = c1 where c1 > c2; -- -- Will column c2 clobber column c1 -- BEFORE column c1 can replace column c2? -- Do we need a temporary column -- or variable to correct this? -- select * from #temp order by PK; -- drop table #temp;
2)
-- #1 Table
CREATE TABLE GenderUpdate
(
ID SMALLINT IDENTITY,
Gender CHAR(1)
);
-- #2 Data
INSERT INTO GenderUpdate (Gender)
VALUES ('M'), ('M'),('M'),('M'),('M'),('M'),('F'),('F'),('F'),('F'),('F'),('F'),('F'),('F'),('F'),('F')
-- #3 To check the data count gender wise
SELECT Gender, COUNT(gender) [COUNT] FROM GenderUpdate GROUP BY gender
-- #4 Final update with case statement
UPDATE GenderUpdate
SET Gender = CASE WHEN GENDER = 'M' then 'F' ELSE 'M' END
SELECT Gender, COUNT(gender) [COUNT] FROM GenderUpdate GROUP BY gender
No comments:
Post a Comment