如何从开始&中删除特定字符串中的\ n(字符(10))在ms sql中结束字符串

时间:2015-01-05 07:38:07

标签: sql-server sql-server-2008

我有一栏供评论,我需要在一份报告中显示。 这里发生了一些时间,用户使用多个进入评论框。我无法访问我只需要在SQL中管理这个东西的代码部分。

所以我删除了不需要的

1 /r/n 
2 /n/n

使用

REPLACE(REPLACE(Desc, CHAR(13)+CHAR(10), CHAR(10)),CHAR(10)+CHAR(10), CHAR(10)) as Desc,

现在我要从字符串的开头或结尾删除任何\r\n

3 个答案:

答案 0 :(得分:3)

顺便提一下你的问题:(从特定的字符串中删除char(10)或char(13))
注意:您应该通过将结果集输出切换为结果到文本(Ctrl + T)来查看输出结果。

文字结果

Results to Ttext:

结果到网格

Results to Grid:

答案 1 :(得分:1)

使用TRIM检查here

示例:UPDATE tablename SET descriptions = TRIM(TRAILING "<br>" FROM descriptions) 如果你想替换换行符,请使用下面的内容

SELECT REPLACE(REPLACE(@str, CHAR(13), ''), CHAR(10), '')

DECLARE @testString varchar(255)
set @testString = 'MY STRING      '

 /*Select the string and try to copy and paste into notepad and tab is still there*/
SELECT testString = @testString 

/*Ok, it seems easy, let's try to trim this. Huh, it doesn't work, the same result here.*/
SELECT testStringTrim = RTRIM(@testString) 

/*Let's try to get the size*/
SELECT LenOfTestString = LEN(@testString) 

/*This supposed to give us string together with blank space, but not for tab though*/
SELECT DataLengthOfString= DATALENGTH(@testString)

SELECT ASCIIOfTab = ASCII(' ')
SELECT CHAR(9) 

/*I always use this like a final solution*/
SET @testString = REPLACE(REPLACE(REPLACE(@testString, CHAR(9), ''), CHAR(10), ''), CHAR(13), '') SELECT @testString   

/*
CHAR(9)       - Tab
CHAR(10) - New Line
CHAR(13) - Carriage Return
*/

Reference

答案 2 :(得分:0)

cdr

enter image description here
创建用户定义函数:trim()

  • 从两侧修剪
  • 修剪任何字母:空格,\ r,\ n等
  • select dbo.trim('abc','c') -- ab
    select dbo.trim('abc','a') -- bc
    select dbo.trim(' b ',' ') -- b