如何在sql server中搜索回车符

时间:2016-08-18 04:40:27

标签: sql sql-server unix awk

我正在努力解决这个问题。我试图将我的数据包含在\ 001中,并在sql server中删除奇数字符以用于etl目的。但是如果你看到最后一行,似乎有一个回车符,但是当我尝试删除它时不起作用。我尝试过replace(replace(column,char(10),''),char(13),''))。下面是当我做一个较少的列时,但不知道该字符是什么。以前有没有人遇到过这个问题?

欢迎任何建议。

^ A011111 ^ A

^ A012345 ^ A

^ A001231231 ^ A

^ A000213123123112 ^ A

^ A

^ A

如果您有任何问题,请告诉我。

2 个答案:

答案 0 :(得分:0)

使用以下脚本。

   SELECT REPLACE(column,CHAR(13)+CHAR(10),'')

参见一个示例场景。

DECLARE @input VARCHAR(50)=CHAR(13)+CHAR(10)+'Hello'+CHAR(13)+CHAR(10)+'world'+CHAR(13)+CHAR(10)

 SELECT LEN(@input) --OUTPUT : 16

删除所有马车符号

 SELECT LEN(REPLACE(@input,CHAR(13)+CHAR(10),'')) --OUTPUT : 10

如果要从字符串的右端删除小车符号,请使用以下查询

SELECT  @input=LEFT(@input,LEN(@input)-PATINDEX('%[^'+CHAR(13)+CHAR(10)+']%',REVERSE(@input))+1)
SELECT LEN(@input) --OUTPUT : 14

如果要从字符串的右端删除马车符号,请使用以下查询

SELECT @input=RIGHT(@input,LEN(@input)-PATINDEX('%[^'+CHAR(13)+CHAR(10)+']%',@input)+1)
SELECT LEN(@input) --OUTPUT : 12

答案 1 :(得分:0)

试试这个

选择替换(替换(@input,' ^ A',''),char(13),'')