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

时间:2010-10-06 12:14:23

标签: sql sql-server ssms

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

如何检查\n是否存在?

9 个答案:

答案 0 :(得分:62)

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

或者...

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

答案 1 :(得分:30)

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) + '%'

答案 2 :(得分:5)

对于任何最终在这里的MySQL用户:

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

答案 3 :(得分:2)

对我来说,MySQL Workbench& amp; HeidiSQL(使用MySQL),而不必使用new的{​​{1}}变体:

char()

答案 4 :(得分:1)

SELECT * 
FROM Table 
WHERE PATINDEX('%' + CHAR(13) + CHAR(10) + '%', Column) > 0

答案 5 :(得分:1)

在Oracle中,尝试以下命令

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

答案 6 :(得分:0)

SELECT * FROM mytable WHERE mycolumn REGEXP "\n";

答案 7 :(得分:0)

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 => 列名是您要细化新的列 行或回车。
  • 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

它对我有用。

答案 8 :(得分:0)

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

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