SQL Server 查询&处理含有回车符&换行符的内容

--bwk_sjc_goal中的wareid是从Excel中直接复制过来的(单个复制&没有双击进去复制)
--导致含有回车&换行符。查询的时候如果直接写等于(='0000024'),则查询结果为空

select * from bwk_sjc_goal

declare @wareid varchar(10)='0000024'+char(13)+char(10)

select g.wareid,u.userid,'',g.goal,''
from bwk_sjc_goal g cross join c_user u
where u.status = '01' and u.orgcode_power <> '0000'
and g.wareid = @wareid
--and g.wareid = '0000024' --结果为空
order by g.wareid,u.userid

 

删除回车&换行符

UPDATE bwk_sjc_goal
SET wareid = REPLACE(wareid, CHAR(13) + CHAR(10), '')
WHERE wareid LIKE '%' + CHAR(13) + CHAR(10) + '%';

 

 

字符前面的“空格”

有时候查询结果中,最前面看起来好像有一个空格,但是使用 ltrim 函数处理后,结果还是没有变化,然后使用 ascii 函数查询,结果为10.

 

select top 1 ASCII(left(LTRIM(associated_wareid),1)) from temp_124 where associated_wareid like '%1005101%'
-- 1005101

--结果:10

处理方式:

select top 1  replace(associated_wareid,char(10),'') from temp_124 where associated_wareid like '%1005101%'

为了保险起见,把char(13)也处理一下:

REPLACE(REPLACE(wareid,char(10),''),char(13),'') as wareid

 

posted @ 2025-06-30 16:46  竹楼风雨声  阅读(57)  评论(0)    收藏  举报