日期:2014-05-18  浏览次数:20448 次

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))可能会出错
--脚本好像也不全