更改表格数据

时间:2014-05-06 10:02:26

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

希望这对这个社区来说很容易。我是一个初学者。 我正在研究MS SQL server 2008 我需要在存储过程中转换一些表数据。

SELECT Qty, WidgetNum, COLOR FROM wherever

我有以下表格数据:

Qty | widgetnum       | COLOR
-----------------------------
2   | 100widget-TWO   | WHITE
1   | 200widget-THREE | BLACK

我需要将其转换为下表数据:

Qty | widgetnum | COLOR
-----------------------------
4   | 100widget | WHITE
3   | 200widget | BLACK

我可能有100个左右的小部件号也可以这样做,表中有数千个记录。 感谢

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,这应该可以解决问题:

UPDATE wherever
SET 
Qty=Qty*( CASE
            WHEN widgetnum like '%-TW' THEN 2
            WHEN widgetnum like '%-TWO' THEN 2
            WHEN widgetnum like '%-THREE' THEN 3
            WHEN widgetnum like '%-THRE' THEN 3
            ELSE 1 END),
widgetnum=(CASE 
             WHEN widgetnum like '%-TW' THEN REPLACE(widgetnum,'-TW','')
             WHEN widgetnum like '%-TWO' THEN REPLACE(widgetnum,'-TWO','')
             WHEN widgetnum like '%-THREE' THEN REPLACE(widgetnum,'-THREE','')
             WHEN widgetnum like '%-THRE' THEN REPLACE(widgetnum,'-THRE','')
             ELSE widgetnum END)