私は、あなたが覚えようとしていることについて完全にはっきりしていません(たとえば、 "field_1 = 300"と置き換えたいと思っています)、それはあなたが探している正確な文字列 "field_1 = 300" 、または単にフィールド名、すなわち "field_1"?)。
また、これまでに書いたコードを貼り付けることはできますか?
はここで指定したフィールド名の現在の値を抽出します簡単なスクリプトです:
DECLARE @str VARCHAR(100),
@str_tmp VARCHAR(100),
@field_pattern VARCHAR(10),
@field_val INT;
SET @str = 'fieldA=23 OR field_1=300 OR fieldB=4';
SET @field_pattern = 'field_1='
-- This part will extract the current value assigned to the "@field_pattern" field
IF CHARINDEX(@field_pattern, @str) > 0
BEGIN
SELECT @str_tmp = SUBSTRING(@str,
CHARINDEX(@field_pattern, @str) + LEN(@field_pattern),
LEN(@str)
);
SELECT @field_val = CAST(SUBSTRING(@str_tmp, 1, CHARINDEX(' ', @str_tmp)-1) AS INT);
END
PRINT @field_val
あなたが(例えば、「600」で、この場合の「300」を置き換える)の値そのものを交換したい場合は、
DECLARE @new_val INT;
SET @new_val = 600;
SET @str = REPLACE(@str, (@field_pattern+CAST(@field_val AS VARCHAR)), (@field_pattern+CAST(@new_val AS VARCHAR)));
PRINT @str;
これはあなたに「fieldA=23 OR field_1=600 OR fieldB=4
」と表示されます。
乾杯、 デーブ
ありがとうDBDave。これは私が必要としたものであり、魅力のように機能します。 – rageit