SQL Server - 选择列表并更新每行中的字段

时间:2014-01-31 15:32:24

标签: sql sql-server sql-server-2008

我讨厌问一些我知道已经回答的问题,但是经过45分钟的搜索后,我会向所有人致谢。

我有一个表格,我需要根据值选择一个项目列表,然后取一个字段并添加一年,并用该值更新另一列。

示例:

select * from table where description='value_i_need'

UPDATE table SET endDate=DATEADD(year, 1, beginDate) -- For each item in the select

编辑:select语句将返回大量结果。我需要唯一更新每一行。

我不知道如何结合选择或循环结果。

我的SQL知识有限,我希望我能够在不必询问的情况下解决这个问题。我感谢任何帮助

编辑2:
我有一个表,我需要经历并更新与描述匹配的每个项目的结束日期。所以我有1000台“计算机”,我需要根据同一行中的另一个字段更新每行中的字段。全部来自一张桌子

4 个答案:

答案 0 :(得分:1)

除非我遗漏了某些内容,否则您应该只需将标准添加到更新语句中,如下所示:

UPDATE [table]
SET endDate=DATEADD(year, 1, beginDate)
WHERE description='value_i_need'

答案 1 :(得分:1)

UPDATE  T
SET     T.END_DATE = DATEADD(YEAR,1,T.BEGINDATE)
FROM    TABLE T
WHERE   T.DESCRIPTION = 'value_i_need

答案 2 :(得分:1)

你的意思是:

UPDATE [TABLE] SET ENDDATE=DATEADD(YEAR,1,BEGINDATE) WHERE DESCRIPTION='VALUE_I_NEED'

答案 3 :(得分:1)

试试这个

UPDATE
    Table T1
SET
    T1.endDate=DATEADD(year, 1, beginDate)

WHERE T1.description='value_i_need'