读书人

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

发布时间: 2012-01-05 22:36:54 作者: rapoo

为什么替换后是这种结果?
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

读书人网 >SQL Server

热点推荐