如何通过Sql命令切换一个表中的记录?

如何通过Sql命令切换一个表中的记录?,sql,sqlite,Sql,Sqlite,我对数据库开发人员有这样的问题。 我有一个表,它有两列,第一列是ID,第二列是year200220032004…它是字符串。我想通过切换记录来更新它们。 一开始是这样的 ID Year 1 2002 2 2003 3 2004 ID Year 1 2003 2 2002 3 2004 我想把它们换成这样 ID Year 1 2002 2 2003 3 2004 ID Year 1 200

我对数据库开发人员有这样的问题。 我有一个表,它有两列,第一列是ID,第二列是year200220032004…它是字符串。我想通过切换记录来更新它们。 一开始是这样的

ID    Year
1     2002
2     2003
3     2004
ID    Year
1     2003
2     2002
3     2004
我想把它们换成这样

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);
考虑将id设置为更小或相等的年数:

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

您的查询中存在令人讨厌的SQL注入,并且由于连接也存在其他问题。这些值不是来自inputbox,而是从ListBox中选择。还有注射吗?