我有这些类型的docnos(BP / 2016/00344,BP / 2016/00345,BP / 2016/00346)和(CP / 2016/00344,CP / 2016/00345,CP / 2016/00346)
就像我有超过100条记录,现在我的任务是通过一次更新查询将年份改为2015而不是2016年
请帮帮我
答案 0 :(得分:3)
为什么你需要使用类似的?我认为可能会导致更新不正确的记录。
看来年份总是在4-7位置。如果这是真的,使用字符串函数这个任务变得非常简单。
我建议使用以下方法而不是使用替换功能,因为您的字符串00345中的尾随数字可能会达到2015年,而且我不认为您想要替换它们。
所以 UNTESTED:
update table
set docnos = left(Docnos,3)+'2016'+right(Docnos,len(docnos)-7)
where substring(docnos,4,4) = '2015'
假设。
ZZ/
格式,其中zz可以是任意2个值现在,如果你必须使用类似......
我想
我们可以改变我们在哪里where docNo like '%/2015/%'
答案 1 :(得分:3)
UPDATE Table
SET docnos = REPLACE(docnos,'/2015/','/2016/')
这应该也可以。
另外,像xQbert所说,如果LIKE必须使用,你可以添加where docnos like '%/2015/%'
答案 2 :(得分:3)
这是对xQbert方法的详细阐述。假设年份总是从第4个字符开始,那么你可以这样做:
update t
set docno = stuff(docno, 7, 1, '6')
where docno like '__/2015/%';