面临一个问题,我存储在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/