替换SQL中同一块的多个值



我有一列Conveyor,表Report_Line中有输送机名称条目,我想用输送机编号代替

Belt - 1 | Slack - 2 | Chain - 3

这是实时场景,一旦一行添加了数据,根据输送机的名称,它应该被替换为相应的编号。

我尝试用Union语句替换查询,但没有成功,抛出错误

SELECT TOP 1 * 
FROM Report_Line 
ORDER BY Serial_no DESC
SELECT REPLACE(Conveyor, 'Slack', '2') 
UNION
SELECT REPLACE(Conveyor, 'Belt', '1')
UNION
SELECT REPLACE(Conveyor, 'Chain', '3') 
GO

您可以尝试使用一个内联的硬编码表,并通过输送机名称连接到它。

类似这样的东西:

Select Top 1* FROM Report_Line 
Left Join 
(values ('Slack', '2'),('Belt', '1'),('Chain', '3')) sidetable(conveyor_name,id)
on sidetable.conveyor_name = Report_Line.Conveyor
Order by Serial_no DESC
GO

最新更新