如何检查 SQL 结果是不是包含换行符?

Posted

技术标签:

【中文标题】如何检查 SQL 结果是不是包含换行符?【英文标题】:How can I check if an SQL result contains a newline character?如何检查 SQL 结果是否包含换行符? 【发布时间】:2010-10-06 12:14:23 【问题描述】:

我有一个包含字符串 lol\ncats 的 varchar 列,但是在 SQL Management Studio 中它显示为 lol cats

如何检查\n 是否存在?

【问题讨论】:

【参考方案1】:
SELECT *
FROM your_table
WHERE your_column LIKE '%' + CHAR(10) + '%'

或者……

SELECT *
FROM your_table
WHERE CHARINDEX(CHAR(10), your_column) > 0

【讨论】:

【参考方案2】:

char(13) 用于'\r',将char(10) 用于'\n'

SELECT *
FROM your_table
WHERE your_column LIKE '%' + CHAR(10) + '%'

SELECT *
FROM your_table
WHERE your_column LIKE '%' + CHAR(13) + CHAR(10) + '%'

【讨论】:

+1 表示CHAR(10)CHAR(13) 对应的字符。【参考方案3】:

对于任何最终来到这里的 mysql 用户:

SELECT *
FROM your_table
WHERE your_column LIKE CONCAT('%', CHAR(10), '%')

【讨论】:

同样,此方案在 SQL 2012+ 中也有效【参考方案4】:

在 Oracle 中,尝试以下命令

SELECT * FROM table_name WHERE field_name LIKE ('%'||chr(10)||'%');

【讨论】:

这是唯一对我有用的!你可能想在代码示例中将chr 更改为char,因为chr 不是一件事,我必须这样做char 才能工作【参考方案5】:

对我来说,以下在 MySQL Workbench 和 HeidiSQL(与 MySQL 一起工作)中工作得很好,而不必使用 \nchar() 变体:

SELECT * FROM table_name WHERE field_name LIKE '%\n%'

【讨论】:

【参考方案6】:
SELECT * 
FROM Table 
WHERE PATINDEX('%' + CHAR(13) + CHAR(10) + '%', Column) > 0

【讨论】:

【参考方案7】:
SELECT * FROM mytable WHERE mycolumn REGEXP "\n";

【讨论】:

【参考方案8】:
select cc.columnname,right(cc.columnname,1),ASCII(right(cc.columnname,1)) ,cc.*
from table_name cc where 
ASCII(right(cc.columnname,1)) = 13

这里

cc.columnname => 列名是你要细化的列 new 换行或回车。 right(cc.columnname,1) => 这将只显示一个字符 在末尾。通常它只显示空白 ASCII(right(cc.columnname,1)) => 在这里我们得到的 Acii 值不是 可打印的值。

通过查看这个 ascii 值,我们可以断定它是哪个项目。例如,如果此 acsci 值为 13,则回车,如果为 10,则新行我们必须使用它来过滤该记录

cc.* => 这给出了表格中的所有值(显示目的) where ASCII(right(cc.columnname,1)) = 13 => 在这里我找到了所有 值为 13 asci 值,因此过滤 ascii 值 13

它对我有用。

【讨论】:

【参考方案9】:

对于任何最终来到这里的 Redshift 用户:

select * from your_table where your_column ~ '[\r\n]+'

【讨论】:

以上是关于如何检查 SQL 结果是不是包含换行符?的主要内容,如果未能解决你的问题,请参考以下文章

sql数据库查询结果字段包含换行符导致复制到Excel发生错位问题的解决

sql server查询结果集字段包含换行符导致复制到excel错位问题

sql查询结果如何自动换行

Oracle PL/SQL查询结果如何自动换行

Oracle PL/SQL查询结果如何自动换行

急!sqlserver查询结果按句号换行符