当前位置: 代码迷 >> Sql Server >> 为什么替换后是这种结果?该如何处理
  详细解决方案

为什么替换后是这种结果?该如何处理

热度:33   发布时间:2016-04-27 21:13:13.0
为什么替换后是这种结果?
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
  相关解决方案