|
I'm not sure if I understood you correctly, but you can use the UPDATE statement with a WHERE Clause to control which rows are updated.
UPDATE MyTable SET Column1 = 'Value1' WHERE mycolumn = 10
UPDATE MyTable SET Column1 = 'Value1' WHERE mycolumn > 10
UPDATE MyTable SET Column1 = 'Value1' WHERE mycolumn BETWEEN 10 AND 12
UPDATE MyTable SET Column1 = 'Value1' WHERE mycolumn IN (10, 12, 15, 30)
|
|
|
|
|
i want to update mycolumn with 10,11,12,.....
assume that my table have 100 row
then mycolumn with 10,11,...,110
thanks for answer
|
|
|
|
|
Still not clear. Update your question with sample data(like BEFORE and AFTER format) with clear explanation. Take your time.
before
A B
----
1 1
2 2 after
A B
----
2 2
3 3
|
|
|
|
|
befor
A B
----
1 NULL
2 NULL
3 NULL
4 NULL
after
A B
----
1 10
2 11
3 12
4 13
thanks
|
|
|
|
|
UPDATE TableName SET ColumnB = ColumnA + 9 I suggest you to spend more time on SQL basics, it'll save you lot of time.
|
|
|
|
|
ok but this is just a sample .
in column A i have a uniqueidentifier value .how can i write same tsql code that you write?
befor
A B
----
Guid Null
Guid Null
. .
. .
. .
after
A B
-----
Guid 10
Guid 11
, .
, .
, .
|
|
|
|
|
|
Hi,
Try this :
ColumnA is the primary key of table : tableName
UPDATE tableName SET columnB = 9 + t2.RowNum FROM tableName t1 INNER JOIN (
SELECT ROW_NUMBER() OVER (ORDER BY columnA) RowNum,columnA FROM tableName) t2 ON t1.columnA = t2.columnA
|
|
|
|
|
If ye be using SQL Server, then seek thee the ROW_NUMBER function.
If not, then at least tell us which database system you are using.
You'll never get very far if all you do is follow instructions.
|
|
|
|
|
ok
thanks for your time.
i solved it by code similar this
select *,ROW_NUMBER() OVER (ORDER BY [Guid] DESC) + 10 AS RN from tblTest
|
|
|
|
|
psst see the little arrow that appears next to the post - click that in appreciation of Piebalds help
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi,
Try this :
ColumnA is the primary key of table : tableName
UPDATE tableName SET columnB = 9 + t2.RowNum FROM tableName t1 INNER JOIN (
SELECT ROW_NUMBER() OVER (ORDER BY columnA) RowNum,columnA FROM tableName) t2 ON t1.columnA = t2.columnA
|
|
|
|
|
I'm having a temp table in which I'm inserting data. In temp table data is ok and I want to update another table with temp table data. I'm new to SQL My Query is:
update result_table set result_table.a = temp.a, result_table.b = temp.b from temp where temp.a= 1
I'm deleting the data in temp table and inserting data again in temp table and updating the result table.
How can I do this?
Please share your opinions.
Thanks!
|
|
|
|
|
You probaly want a JOIN in the FROM part -- JOIN the result_table to temp ON some key you haven't mentioned.
You'll never get very far if all you do is follow instructions.
|
|
|
|
|
I got these very weird scenario i encounter.
it happens when i try execute the sample provided in mysql doc about prepared statement, i created the table with columns correspond with the sample. mysql prepared statement
then when i execute it(BTW i used the c# sample), it populate the rows with 1000 entries.
after that i try to insert one entry with out the prepared statement (at this moment the ignore prepare property is set to true), then the executeNonQuery return 1, so it means it inserted the so i checked the database but the value i inserted is not in there, so i try it many time but still no luck.
so i decide to write the insert query directly to workbench, but i got thesame result the data was not there.
so i tried to delete the last row, then the weird things happen. it delete the the last row that has an the id of 1000(btw the id was autoincrement) it also insert 1 new data with the id of 1001, so try to delete to rows but after the two rows was deleted it also insert two more rows with the id of 1002 and 1003.
then after that i tried to insert new data but is still keep telling me that 1 row is inserted but i cant see that on the table so, i tried to delete rows still bu t it still doing the same.
BTW as u can see on the documentation the second column is a number, then when i delete the data it also insert now row with the incremented value of it.
so i decide to truncate the table and insert few row and then delete some of it, at this point it was working as expected, then i decide to execute the prepared statement(ignore prepare set to false) then after that it do the same weird things.
i dont know what on this, could somebody explain to me.
i will appreciate for any enlightenment will come.
thank you very much
|
|
|
|
|
Can you show us the query you are using to check the new rows, you allegedly inserted? You may also add your insert command...
Also read here to understand what ExecuteNonQuery exactly returns - http://waldev.blogspot.co.il/2008/01/return-value-of-executenonquery-in.html[^]
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
|
|
|
|
|
actually I am using workbench and sqlyog for browsing the database.
executing insert or delete, ExecuteNonQuery return the expected number of rows to be affected on the console, but when i look on the database the affected rows is not there. even i will execute directly it to workbench or sqlyog i got the same behavior.
|
|
|
|
|
SELECT
[Sheet1$].Sheet1DetailId,
[Sheet1$].Sheet1Id,
[Sheet2$].Sheet2Id,
LTrim(RTrim([Sheet3$].Mission)) + '-' + CStr(Format('01-' + [Sheet3$].Sheet3Date,"mm/dd/yyyy")) AS Sheet3DateColumn,
[Sheet1$].one,
[Sheet1$].two,
[Sheet1$].three,
[Sheet1$].four,
[Sheet1$].five,
[Sheet1$].six,
[Sheet1$].seven,
[Sheet1$].eight,
[Sheet1$].nine,
[Sheet1$].ten,
LTRIM(RTRIM([Sheet2$].Name)) AS Sheet2Name
FROM (([Sheet1$])
INNER JOIN [Sheet2$] ON [Sheet1$].Id = [Sheet2$].Sheet2Id)
INNER JOIN [Sheet3$] ON [Sheet1$].Id = [Sheet3$].Sheet3Id
In SSIS 2005 Excel source, i have set the data access mode to SQL command and typed in the above query to get data from 3 Microsoft excel sheets(sheet1, sheet2, sheet3).
The intention is to get all rows in sheet1 with their corresponding reference values in sheets 2 & 3 but for some strange reason, every row in sheet1 is being returned twice.
I can't seem to figure out what i am doing wrong in query?
|
|
|
|
|
What I normally do i this case is to comment out the joins until I identify which one is causing the duplicates, then I filter to 1 row and go hunting through the data to find the cause.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Dear,
It happens only when the multiple records are available with the correspondence of [Sheet1$].Id into the [Sheet2$] ([Sheet2$].Sheet2Id) Or [Sheet3$] ([Sheet3$].Sheet3Id).
Please check with the multiple records into the Both the Sheet 2 & 3.
If you dont want to remove the multiple records from those sheets then
Add distinct clause into the SELECT Query.
SELECT DISTINCT
[Sheet1$].Sheet1DetailId,
[Sheet1$].Sheet1Id,
[Sheet2$].Sheet2Id,
LTrim(RTrim([Sheet3$].Mission)) + '-' + CStr(Format('01-' + [Sheet3$].Sheet3Date,"mm/dd/yyyy")) AS Sheet3DateColumn,
[Sheet1$].one,
[Sheet1$].two,
[Sheet1$].three,
[Sheet1$].four,
[Sheet1$].five,
[Sheet1$].six,
[Sheet1$].seven,
[Sheet1$].eight,
[Sheet1$].nine,
[Sheet1$].ten,
LTRIM(RTRIM([Sheet2$].Name)) AS Sheet2Name
FROM (([Sheet1$])
INNER JOIN [Sheet2$] ON [Sheet1$].Id = [Sheet2$].Sheet2Id)
INNER JOIN [Sheet3$] ON [Sheet1$].Id = [Sheet3$].Sheet3Id
|
|
|
|
|
From:
ObjectID - PropertyID - PropertyListValueID
1828 - 41 - 171
1828 - 41 - 170
1828 - 46 - 184
1828 - 47 - 189
To:
ObjectID - 41 - 46 - 47
1828 - 170 - 184 - 189
1828 - 171 - 184 - 189
It's possible? Thanks
|
|
|
|
|
Which version of SQL Server?
You could try PIVOT
|
|
|
|
|
Sql server 2012
pivot without aggregation
|
|
|
|
|
I love the opportunity for self promotion, this article [^]will be of use!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
With PIVOT i get:
ObjectID - 41 - 46 - 47
--------------------------------------
1828 - 171 - 184 - 189
or
ObjectID - 41 - 46 - 47
--------------------------------------
1828 - 171 - 184 - 189
1828 - 170 - NULL - NULL
I must do:
select ObjectID from table where [41]=171 and [46]=184
select ObjectID from table where [41]=170 and [46]=184
|
|
|
|