我的MSSQL中有下表。
itemNo itemDesc ComponentType Voltage
100001LF CAP CER 10n 25V 20% 0805 CAPACITOR NULL
100002LF CAP CER 10n 50V 20% 1206 CAPACITOR NULL
100008LF CAP CER 100n 25V 20% 0805 CAPACITOR NULL
100012LF CAP CERAM 1n 25V 20% 0805 CAPACITOR NULL
100013LF CAP CER 100n 25V 20% 0805 CAPACITOR NULL
现在,如何从
itemDesc
确定电压并将其输入到Voltage中?注意:可以这样确定电压:搜索字母
V
,在看到空格之前先输入所有字符。我最初的尝试是这样的:[但是,没有用:(]
UPDATE dbo.capacitor
SET [Voltage] = CASE WHEN CHARINDEX('% ', ItemDesc) > 0 THEN SUBSTRING(itemDesc, CHARINDEX['V ', ItemDesc], CHARINDEX['V ',ItemDesc]+2)
ELSE null
END
(我将C#用于编码。但是,我希望可以在SQL Server本身中完成此操作,而不是使用C#来获取每个记录,处理并将其放回去)。
最佳答案
UPDATE dbo.capacitor
SET [Voltage] = CASE WHEN CHARINDEX('% ', itemDesc) > 0 THEN SUBSTRING(itemDesc, CHARINDEX('n', itemDesc) + 1, CHARINDEX('V ',itemDesc) - (CHARINDEX('n', itemDesc) + 1))
ELSE null END
END
关于c# - 使用MSSQL中的子字符串更新操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20419675/