一个回车的SQL查询返回一个string,并最终删除回车

一个回车的SQL查询返回一个string,并最终删除回车

我在表格中有一些数据,并且在我不想要的地方有一些回车符。 我想写一个查询来获取所有包含回车的string。

我试过这个

select * from Parameters where Name LIKE '%"\n" %' 

 select * from Parameters where Name LIKE '\r' 

两个都是有效的SQL,但没有返回我正在寻找的东西。 我需要使用Like命令还是使用其他命令? 如何获得回车查询?

回车不一定在行的末尾(可能在中间)。

这将是缓慢的,但如果是一次性的事情,请尝试…

 select * from parameters where name like '%'+char(13)+'%' or name like '%'+char(10)+'%' 

请注意,ANSI SQLstring连接运算符是“||”,因此可能需要:

 select * from parameters where name like '%' || char(13) || '%' or name like '%' || char(10) || '%' 

主要的问题是删除CR / LF。 使用replace和char函数适用于我:

 Select replace(replace(Name,char(10),''),char(13),'') 

对于Postgres或Oracle SQL,请改用CHR函数:

  replace(replace(Name,CHR(10),''),CHR(13),'') 

在SQL Server中,我会使用

 where charindex(char(13), name)<>0 

你也可以使用正则expression式:

 SELECT * FROM Parameters WHERE Name REGEXP '\n'; 

这个工作:select * from table where''%(hit enter)%'

忽略括号并按回车来引入新行。

省略您的第一个查询中的双引号。

 ... LIKE '%\n%' 

这也适用

 SELECT TRANSLATE(STRING_WITH_NL_CR, CHAR(10) || CHAR(13), ' ') FROM DUAL; 

像这样的东西似乎为我工作:

 SELECT * FROM Parameters WHERE Name LIKE '%\n%'