У меня есть таблица ниже в моем MSSQL.Операция обновления с подстрокой в 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. Сам сервер вместо того, чтобы использовать C# для записи каждой записи, обработать и вернуть ее обратно).
Что произойдет, если часть '' CAP CER '' свяжется с '' V''? Или вы можете гарантировать ***, что это невозможно? Или возможны другие поиски? Например, «третий из последнего элемента в списке, разделенном пробелом»? – MatBailie
@MatBailie: Я могу гарантировать, что это никогда не произойдет, потому что именно я беру на себя ответственность за помещение данных. Таким образом, он всегда «следует стандартной схеме». :) –
У меня нет времени, чтобы дать вам решение, но вот мой намек ... После того, как вы нашли первый '' V'', возьмите все до этого '' V'' и измените строку. Теперь найдите все до первого '' '', и вы найдете напряжение, назад, так что просто верните его снова. – MatBailie