日期:2014-05-19  浏览次数:20677 次

为什么替换后是这种结果?
declare   @src_sql     varchar(10)
set   @src_sql   =   'cccyyyy%_mm%aaa '
set   @src_sql   =     replace(replace(@src_sql, 'mm% ', '07 '), 'yyyy% ', '2007 ')
print   @src_sql

结果是
ccc2007_m

------解决方案--------------------
因为 declare @src_sql varchar(10)

赋值时到第一个m后,后面的字串被略去了
------解决方案--------------------
declare @src_sql varchar(20)
set @src_sql = 'cccyyyy%_mm%aaa '
set @src_sql = replace(replace(@src_sql, 'mm% ', '07 '), 'yyyy% ', '2007 ')
print @src_sql
--------
ccc2007_07aaa
------解决方案--------------------

同意楼上.

declare @src_sql varchar(20)
set @src_sql = 'cccyyyy%_mm%aaa '
set @src_sql = replace(replace(@src_sql, 'mm% ', '07 '), 'yyyy% ', '2007 ')
print @src_sql
--------
ccc2007_07aaa