我正在SQL Server中编写一个SQL查询,我需要用一个字符串值替换多个字符串值.例如
Product Quantity ------- -------- Apple 2 Orange 3 Banana 1 Vegetable 7 Dairy 6
会成为
Product Quantity ------- -------- Fruit 2 Fruit 3 Fruit 1 Vegetable 7 Dairy 6
我知道如何执行此操作的唯一方法是在SELECT子句中使用嵌套的REPLACE.
SELECT REPLACE('Banana', REPLACE('Orange', REPLACE('Banana', Product, 'Fruit'), 'Fruit'), 'Fruit') AS Product FROM Table
有没有更简单的方法?
编辑:产品类别中可能还有其他值.见上面编辑的例子.
到目前为止,BradC有最好的答案,但如果你由于某种原因无法创建额外的表格,我想发布一个Kibbee答案的改编:
SELECT CASE WHEN Product IN ('Banana', 'Apple', 'Orange') Then 'Fruit' ELSE Product END FROM [Table]
创建一个新的"类别"表,其中包含您的产品列表以及它们所属的"类别".
然后做一个内部联接.
Select Case Product WHEN 'Banana' Then 'Fruit' WHEN 'Apple' Then 'Fruit' WHEN 'Orange' Then 'Fruit' ELSE Product END FROM Table