Mae*_*024 48 sql char carriage-return sql-like
SQL查询字符串中的回车并最终删除回车符
我在表中有一些数据,并且在我不想要的地方有一些回车.我试图编写一个查询来获取包含回车符的所有字符串.
我试过这个
select * from Parameters
where Name LIKE '%"\n" %'
Run Code Online (Sandbox Code Playgroud)
也
select * from Parameters
where Name LIKE '\r'
Run Code Online (Sandbox Code Playgroud)
"
两者都是有效的SQL,但没有返回我要找的东西.我是否需要使用Like命令或其他命令?如何让回车进入查询?
回车不一定在线的末端(可能在中间).
KM.*_*KM. 65
这会很慢,但如果是一次性的话,试试......
select * from parameters where name like '%'+char(13)+'%' or name like '%'+char(10)+'%'
Run Code Online (Sandbox Code Playgroud)
请注意,ANSI SQL字符串连接运算符是"||",因此可能需要:
select * from parameters where name like '%' || char(13) || '%' or name like '%' || char(10) || '%'
Run Code Online (Sandbox Code Playgroud)
小智 59
主要问题是删除CR/LF.使用replace和char函数对我有用:
Select replace(replace(Name,char(10),''),char(13),'')
Run Code Online (Sandbox Code Playgroud)
对于Postgres或Oracle SQL,请使用CHR函数:
replace(replace(Name,CHR(10),''),CHR(13),'')
Run Code Online (Sandbox Code Playgroud)
在SQL Server中我会使用:
WHERE CHARINDEX(CHAR(13), name) <> 0 OR CHARINDEX(CHAR(10), name) <> 0
Run Code Online (Sandbox Code Playgroud)
这将搜索回车和换行.
如果您想要搜索选项卡,只需添加:
OR CHARINDEX(CHAR(9), name) <> 0
Run Code Online (Sandbox Code Playgroud)