Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
rudba
Constraint Violating Yak Guru
415 Posts |
Posted - 2009-03-03 : 15:49:55
|
| I have a data like this:ID Col1 Col21 2 13 4 35 3 I want to update Col2 like this:Id Col1 Col21 12 1 13 34 3 35 3 3 |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
jackv
Master Smack Fu Yak Hacker
2179 Posts |
Posted - 2009-03-03 : 16:02:09
|
| Hi The following will give you what you want .I've assumed your columns are data type = INT , and NULL would be the default value . Obviously , you can change the code slightly.create table #x (ID INT,COL1 INT,COL2 INT)INSERT INTO #xSELECT 1, NULL,NULLINSERT INTO #xSELECT 2, 1,NULLINSERT INTO #xSELECT 3, NULL,NULLINSERT INTO #xSELECT 4, 3,NULLINSERT INTO #xSELECT 5,3 ,NULLSELECT * FROM #xUPDATE #x SET COL1 = CASE WHEN ISNULL(COL1,0) < 1 THEN ID ELSE COL1 END, COL2 = CASE WHEN ISNULL(COL2,0) < 1 THEN COL1 ELSE COL2 ENDSELECT * FROM #xDROP TABLE #xJack Vamvas--------------------http://www.ITjobfeed.com |
 |
|
|
rudba
Constraint Violating Yak Guru
415 Posts |
Posted - 2009-03-03 : 16:13:17
|
| jackv,I have to update only col2the following recrods are just update ID 1 and ID 3OUT PUT Will beID Col21 13 3create table #x (ID INT,COL1 INT,COL2 INT)INSERT INTO #xSELECT 1, NULL,NULLINSERT INTO #xSELECT 2, 1,NULLINSERT INTO #xSELECT 3, NULL,NULLINSERT INTO #xSELECT 4, 3,NULLINSERT INTO #xSELECT 5,3 ,NULLINSERT INTO #xSELECT 6,NULL ,NULLINSERT INTO #xSELECT 7,NULL ,NULL |
 |
|
|
jackv
Master Smack Fu Yak Hacker
2179 Posts |
Posted - 2009-03-03 : 16:18:53
|
| rudbaIf you want to update only COL2 do :UPDATE #x SET COL2 = CASEWHEN ISNULL(COL2,0) < 1 THEN COL1ELSE COL2ENDIs that what you are looking for?,because the way you showed the data initially , implied that both columns are updated Jack Vamvas--------------------http://www.ITjobfeed.com |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2009-03-04 : 08:53:06
|
quote: Originally posted by rudba I have a data like this:ID Col1 Col21 2 13 4 35 3 I want to update Col2 like this:Id Col1 Col21 12 1 13 34 3 35 3 3
seems like what you need isUPDATE tSET t.Col2=(SELECT TOP 1 Col2 FROM Table WHERE ID < t.ID ORDER BY ID DESC)FROM Table tWHERE NULLIF(t.Col2,'') IS NULL |
 |
|
|
|
|
|
|
|