我正在尝试替换其中一个SQL列中的文本。通过查找/*REPLACE*/的所有引用,可以很容易地找到要替换的文本,其中下一个字符是一个数值,该数值必须向上提升5000。
原始值的示例如下所示。
var checkIn = moment(FIELD(/*REPLACE*/4,/*REPLACE*/9).GET());
var checkOut = moment(FIELD(/*REPLACE*/4,/*REPLACE*/10).GET());
if (checkIn > checkOut) {
FIELD(/*REPLACE*/4,/*REPLACE*/10).SET(checkIn.format("DD MMM YYYY"));
checkOut = moment(FIELD(/*REPLACE*/4,/*REPLACE*/10).GET());
}
FIELD(/*REPLACE*/4,/*REPLACE*/11).SET(parseFloat(checkOut.diff(checkIn, "days")).toFixed(2));我需要找到/*REPLACE*/的所有引用,并增加以下字符,这是一个数字5000。
新值的示例如下所示。
var checkIn = moment(FIELD(5004,5009).GET());
var checkOut = moment(FIELD(5004,5010).GET());
if (checkIn > checkOut) {
FIELD(5004,5010).SET(checkIn.format("DD MMM YYYY"));
checkOut = moment(FIELD(5004,5010).GET());
}
FIELD(5004,5011).SET(parseFloat(checkOut.diff(checkIn, "days")).toFixed(2));我已经从基础开始了,但在寻找文本后面的数字字符时迷失了方向。
SELECT column.REPLACE(column, '/*REPLACE*/',有什么需要帮忙的吗?
发布于 2013-06-26 22:18:22
您真的需要在SQL Server上使用T-SQL吗?第三代编程语言(如C++、C#、VB.NET等)支持更强大的字符串操作方法;例如,您可以使用正则表达式,这些正则表达式不是在SQL Server中本机实现的。
您可以设计SQL CLR函数或过程来解决此限制,但更合适的替代方法是使用客户端应用程序。还可以将SQL Server Integration Services与脚本转换结合使用(可以使用C#或VB.NET进行转换)。
毫升
https://stackoverflow.com/questions/17321476
复制相似问题