一个回车的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%'