希望这对这个社区来说很容易。我是一个初学者。 我正在研究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个左右的小部件号也可以这样做,表中有数千个记录。 感谢
答案 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)