sql - 如何检查 SQL Server 中的数据是否有回车符和换行符?

标签 sql sql-server

面临一个问题,我存储在SQL Server中的数据似乎没有正确存储,简单地说,如何验证varchar数据中是否有回车和换行?我尝试将它们打印出来,不显示特殊字符。 谢谢

最佳答案

您可以使用 SQL Server 的 char(n)contains() 函数来匹配 WHERE 子句中的字段内容。

carriage return: char(13)
line feed:       char(10)

The following SQL will find all rows in some_table where the values of some_field contain newline and/or carriage return characters:

SELECT * FROM some_table 
WHERE CONTAINS(some_field, char(13)) OR CONTAINS(some_field, char(10)) 

要删除 some_field 值中的回车符,您可以使用 replace() 函数 long 以及 char()contains ()。 SQL 看起来像这样:

UPDATE some_table 
SET some_field = REPLACE(some_field, char(13), '')
WHERE CONTAINS(some_field, char(13))

要删除新行,您可以使用该更新的 char(10) 版本来跟踪最后一条语句。如何执行这一切取决于文本包含的换行符类型。但是,根据新行中文本插入/粘贴的位置可能是\r\n 或\n,因此针对\r 和\n 字符运行更新比假设您获得一个版本的换行符或\r\n 更安全。另一个。

请注意,如果换行符已被删除并且您想保留它们,那么您必须在输入点解决问题。您无法替换或修复已删除的内容,因此您应该将原始文本数据保存在包含原始的、未修改的文本的新列中。

关于sql - 如何检查 SQL Server 中的数据是否有回车符和换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10091827/

相关文章:

sql - 在 SQL Server 中定义动态 PIVOT sql 查询

sql - 如何使用 DB2 Explain?

sql - 条件分组求和

php - while 循环内的查询仅显示 1 个结果

mysql - 如何选择每列都不匹配值的所有行?

python - pypyodbc:关键字 "WITH"附近的 OPENJSON 语法不正确

sql - 复制具有不同 ID 的记录

sql - 在 Postgresql 中实现类似 FOR 循环的功能

sql-server - vb.net SQL Server “Incorrect Syntax near' ='.”

sql - 估计的子树成本大幅下降,糟糕的优化