帮助SQL Server中的UPDATE查询

时间:2010-11-28 00:05:46

标签: sql-server

我需要一个人的帮助, 我需要更改一些产品ID:

SELECT *
FROM user_item
SET item_type='8063'
WHERE item_type ='8051

好的......很简单,但有问题

有时我需要更新并添加+ 1项。 我真的不知道该怎么做。

示例:

set item_type='962' And add 963
where item_type='8077'

这里的任何人都可以帮助我吗?

Tks

3 个答案:

答案 0 :(得分:1)

UPDATE user_item 
SET item_type = 962 + 1 
WHERE item_type = '8077'

答案 1 :(得分:0)

;with CTE as
(   select  item_type,
            case
                when item_type = '962' then CONVERT(varchar(50), convert(int, item_type) + 963)
                else CONVERT(varchar(50), convert(int, item_type) + 1)
            end as new_item_type
    from    user_item )
update  CTE 
set     item_type = new_item_type

理想情况下,您应该在其他表或其他规则中查找新项目类型,而不是制作大型,丑陋和脆弱的案例陈述。此示例适用于您在问题中提供的信息。在更新之前在CTE中试验SQL语句。

PS:你的数据类型真的是varchar吗?如果您正在对数据执行数学运算,那么它们肯定应该是整数。您将获得更好的查找和索引性能,并且它们比将它们存储为varchars所需的空间更少。

答案 2 :(得分:0)

或者如果你想用item_type = 963添加另一个字段(如果我理解得当),你可以有一个额外的相关插入查询来改变你所讨论的项目的item_type值。