这是我的查询。
select
a.LoanNumber,
u.Comments,
From
LoanApp as a
LEFT JOIN Summary as u on a.id = u.loanapp_id
inner join temploannumber as t on a.LoanNumber = t.loannumber
order by a.LoanNumber
我的问题是评论字段是一个包含回车符的文本字段。查询结果如下所示:
12345 This is a test
Test failed for this loan.
23456 This is a test. Test was successful.
34567 This is a test.
Test failed for this loan.
Test failed again for this loan.
如何在select语句中删除回车符,如下图所示,没有数据包装?我不想影响存储在数据库中的数据。
12345 This is a test. Test failed for this loan.
23456 This is a test. Test was successful.
34567 This is a test. Test failed for this loan. Test failed again for this loan.
答案 0 :(得分:1)
我还有一个可以使用的功能,删除所有控制字符,但您可能没有权限创建功能。我不记得我在哪里找到了这段代码,但我相信你可以在某个地方找到它。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[RemoveNonDisplayChars]
(@pString VARCHAR(8000))
RETURNS VARCHAR(8000)
AS
BEGIN
--===== Declare Local variables
DECLARE @IncorrectCharLoc SMALLINT, --Position of bad character
@Pattern CHAR(37) --Bad characters to look for
SELECT @Pattern = '%['
+ CHAR(0)+CHAR(1)+CHAR(2)+CHAR(3)+CHAR(4)
+ CHAR(5)+CHAR(6)+CHAR(7)+CHAR(8)+CHAR(9)
+ CHAR(10)+CHAR(11)+CHAR(12)+CHAR(13)+CHAR(14)
+ CHAR(15)+CHAR(16)+CHAR(17)+CHAR(18)+CHAR(19)
+ CHAR(20)+CHAR(21)+CHAR(22)+CHAR(23)+CHAR(24)
+ CHAR(25)+CHAR(26)+CHAR(27)+CHAR(28)+CHAR(29)
+ CHAR(30)+CHAR(31)+CHAR(127)
+ ']%',
@IncorrectCharLoc = PATINDEX(@Pattern, @pString)
WHILE @IncorrectCharLoc > 0
SELECT @pString = STUFF(@pString, @IncorrectCharLoc, 1, ''),
@IncorrectCharLoc = PATINDEX(@Pattern, @pString)
RETURN @pString
END
然后只需对它执行功能。
select a.LoanNumber, RemoveNonDisplayChars(u.Comments)
From LoanApp as a
LEFT JOIN Summary as u on a.id = u.loanapp_id
inner join temploannumber as t on a.LoanNumber = t.loannumber
order by a.LoanNumber
祝你好运!
答案 1 :(得分:0)
试试这个。它用空字符串替换换行符和回车符。
select a.LoanNumber, REPLACE(REPLACE(u.Comments, char(13), ''), char(10), '')
From LoanApp as a
LEFT JOIN Summary as u on a.id = u.loanapp_id
inner join temploannumber as t on a.LoanNumber = t.loannumber
order by a.LoanNumber