gpt4 book ai didi

c# - 在 MSSQL 中使用子字符串更新操作

转载 作者:行者123 更新时间:2023-11-30 20:52:55 24 4
gpt4 key购买 nike

我的 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,在看到空格之前获取所有字符。/p>

我最初的尝试是这样的:[但是,没用 :( ]

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# 获取每条记录、处理并将其放回)。

最佳答案

我想这在 C# 中会容易得多,但这里有一个适用于 SQL 的解决方案。它反转字符串并在一个空格后查找 V 并将所有内容带到下一个空格,然后将其反转回来。

declare @desc as varchar(100) = 'CAP CER 10n 25V 20% 0805'

select REVERSE(SUBSTRING(REVERSE(@desc),
charindex(' V', REVERSE(@desc)) + 2,
CHARINDEX(' ', REVERSE(@desc), charindex(' V', REVERSE(@desc)) + 1) - charindex(' V', REVERSE(@desc)) - 2))

关于c# - 在 MSSQL 中使用子字符串更新操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com