replace 的一个小问题
declare @InnerCondition varchar(1000)
declare @tempinner varchar(1000)
declare @ProjectID varchar(100)
set @ProjectID= '10 '
SET @InnerCondition = 'from PDS_BID_Product as p
inner join PDS_BID_ProductCatalog as pc
on p.PRODUCTCTL_ID = pc.ID AND pc.PROJECT_ID= '+CAST(@ProjectID AS CHAR(10))+ '
inner join PDS_BID_ProductClass as pcs
on pc.PCLASS_ID = pcs.ID AND pcs.PROJECT_ID= '+CAST(@ProjectID AS CHAR(10))+ '
inner join PDS_BID_BidUserRight AS PBB
ON P.Bidder_ID = PBB.Bidder_ID AND P.User_ID=PBB.User_ID AND P.PROJECT_ID=PBB.PROJECT_ID '
SET @tempinner = ' '+ REPLACE( REPLACE(@InnerCondition,char(13), ' '),CHAR(10), ' ') + ' '
--SET @tempinner = ' '+ REPLACE(@InnerCondition,char(13), ' ') + ' '
select @tempinner
以上代码执行结果怎么解释呀,CHAR(13),CHAR(10),分别代表什么呀,两个Replace
分别做了什么操作呀,希望得到你的解答
------解决方案--------------------制表符 CHAR(9)
换行符 CHAR(10)
回车 CHAR(13)
------解决方案--------------------REPLACE
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
REPLACE ( 'string_expression1 ' , 'string_expression2 ' , 'string_expression3 ' )
参数
'string_expression1 '
待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。
'string_expression2 '
待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。
'string_expression3 '
替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。
返回类型
如果 string_expression(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_expression(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
------解决方案--------------------把你要执行的sql脚本中的
换行符 CHAR(10)
回车 CHAR(13)
换成 ' '
规范脚本
--CAST(@ProjectID AS CHAR(10))可能会出错
--脚本好像也不全