2010-11-28 54 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值。