我有一个将多个参数作为一个字符串保存的字段
parameters = -start=0 -end=67 -median=12
此参数可以按任何顺序排列或不存在。如何摆脱参数之一,例如。中位数,并将其他所有字符串都保留?
此查询替换参数,但不替换'='之后的变量值
UPDATE table
SET parameters = REPLACE(parameters,'-median=','')
where parameters LIKE '%median%'
如何更新此查询以替换'-median =%'?
我认为这会起作用:
select params,
(case when params like '% -median=%'
then stuff(params,
charindex(' -median', v.params),
charindex(' ', v.params + ' ', charindex('-median', v.params)) - charindex(' -median', v.params),
''
)
else params
end)
from (values ('parameters = -start=0 -end=67 -median=12'),
('parameters = -start=0 -median=12 -end=67')
) v(params);
Here是db <> fiddle中的示例。