我正在寻找一种方法来从现有查询列中为多重字符串更改/创建新列。
我的原始专栏如下:
parttype_name
---------------
MY 4KXDVV F H
MY 4KXDVV F H
MY 4KXDVV F H
MY 4KXDVV F H
A4 4BXDCV C X
A4 4BXDCV C X
A4 4BXDCV C X
A4 4BXDCV C X
A4 4BXDCV C X
我要求的是在一个字符串中找到一种简单的方法(如果可能的话)来为下一个数据更新/创建新列:(如果列数据为'MY 4KXDVV FH',则将其更新为H5,如果'A4 4BXDCV CX'然后将其更新为X3 ...所以拥有所有列字符串。
谢谢,
答案 0 :(得分:0)
您可以尝试替换这样的功能:
select parttype_name,
replace(parttype_name,'MY','H5') as edited_parttype_name
from MyTable
修改强> 您可以嵌入要替换的调用,如下所示:
select parttype_name,
replace(
replace(
replace(parttype_name,
'MY','H5'),
'YY','H4'),
'ZZ','H3')
as edited_parttype_name
from MyTable
请注意左右括号
答案 1 :(得分:0)
您可能想要CASE STATEMENT
SELECT
parttype_name,
CASE parttype_name
WHEN 'MY 4KXDVV F H' THEN 'H5'
WHEN 'A4 4BXDCV C X' THEN 'X3'
--WHEN '' THEN ''
END
FROM
your_table;
答案 2 :(得分:0)
如果你有更多不,我会建议。然后记录获得不同的值(parttype_name),然后使用while循环或使光标更新具有特定值的所有值,如示例H5和H4中所示。
UPDATE TableName
SET parttype_name = REPLACE(parttype_name, @variablename, @updatevalue)
这里,@ variablename和@updatevalue是变量,你可以使用一些逻辑来动态地改变@updatevalue的值。
如果您需要更多帮助,请与我们联系。