我有一个像这样的字符串结构:
select *
from some_table
order by id
offset 42
fetch first 42 rows only;
我正在尝试使用3或45或65等任何单个值更改Exec Test @totalRows = 10 ,@DateCriteria = 'nd',@NDays = -7 ,@GroupIds = '3,4,6,7',@OrderBy = 'DESC'
。
'3,4,6,7'
可以是逗号分隔的N个数字,例如'3,4,6,7'
。这些基本上都是ID。我想用一个单一的值来改变它们。所以我需要的字符串将变成:
'1,2,3,45,33,111,33'
Exec Test @totalRows = 10 ,@DateCriteria = 'nd',@NDays = -7 ,@GroupIds = '455',@OrderBy = 'DESC'
只是一个例子,它可以是任何整数值。
到目前为止,我已经尝试过没有Linq
455
答案 0 :(得分:5)
您可以使用正则表达式轻松完成此操作。
Regex.Replace(your string,@"(?<=')(\d,?)+(?=')","455")
我不知道你为什么要使用LINQ。但正则表达式更适合这些目的。
修改:看起来您只需要更改GroupId。在这种情况下,您可以像这样修改正则表达式模式:
@"(?<=@GroupIds = ')(\d,?)+(?=')"