2010-11-28 82 views
2

^h大家,我需要一个帮助, 我需要改变产品的一些资料:帮助在SQL Server UPDATE查询

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

好吧......容易,但有一个问题

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

例子:这里

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

有人能帮助我吗?

韩国社交协会

回答

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

set语句中的两个值是任意的。您可以为该表达式添加任何数字。 – 2010-11-28 00:18:34

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 

理想情况下,你应该看看了新的项目类型的其它表或其他一些规则,而不是做一个大的,丑陋而脆case语句。这个例子适用于你在问题中提供的信息。在更新之前试验CTE中的SQL语句。

PS:你的数据类型是否真的是varchar?如果你对数据进行数学运算,那么它们当然应该是整数。你会得到更好的查询和索引性能,并且它们将比将它们存储为varchars占用更少的空间。

0

或者如果你想添加item_type = 963的其他字段(如果我理解正确),你可以有一个额外的相关插入查询来做到这一点,当你改变有问题的项目的item_type值。