2012-07-01 70 views
0

我對數據庫開發人員有這樣的問題。 我有一個表,它有兩列,第一個是ID,第二個是Year(2002,2003,2004 ...它是字符串)。我想通過切換記錄來更新它們。 一開始就是這樣。如何通過Sql命令在一個表中切換記錄?

ID Year 
1  2002 
2  2003 
3  2004 

我想切換它們並製作成這樣。

ID Year 
1  2003 
2  2002 
3  2004 

請注意,我的年份列是獨一無二的。 所以我嘗試了這樣的東西,但沒有爲我工作。

SqlCeCommand sss = new SqlCeCommand("Update Year Set Year='" + Year1 + "' Where Year='" + Year2 + "'", MainWindow._Conn); 
+0

。在你的查詢討厭的SQL注入,並具有由於級聯其它問題好。 – usr

+0

這些值不是來自輸入框,只是從列表框中選擇。那裏還有注射嗎? –

回答

1

考慮設置id到數年是小於或等於:

update YourTable 
set  id = 
     (
     select count(*) 
     from YourTable yt2 
     where yt2.Year <= YourTable.year 
     ) 

Live example at SQL Fiddle.

相關問題