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

问题描述 投票:0回答:9

我有一个 varchar 列,其中包含字符串

lol\ncats
,但是,在 SQL Management Studio 中它显示为
lol cats

如何检查

\n
是否存在?

sql sql-server
9个回答
112
投票
SELECT *
FROM your_table
WHERE your_column LIKE '%' + CHAR(10) + '%'

或者...

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

54
投票

使用

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

16
投票

对于所有来到这里的 MySQL 用户:

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

4
投票

对我来说,以下内容在 MySQL Workbench 和 HeidiSQL(使用 MySQL)中都可以正常工作,而无需使用

char()
\n
变体:

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

2
投票

在 Oracle 中,尝试以下命令

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

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

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))
    => 这里我们得到的是不是的 ASCII 值 可打印的值。

通过查看这个 ASCII 值,我们可以推断出它是哪一项。例如,如果这个 ASCII 值是 13 则回车,如果是 10 则换行,我们必须使用它来过滤该记录

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

它对我有用。


-1
投票
SELECT * FROM mytable WHERE mycolumn REGEXP "\n";

-1
投票

对于所有最终来到这里的 Redshift 用户:

select * from your_table where your_column ~ '[\r\n]+'
© www.soinside.com 2019 - 2024. All rights reserved.