Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带单行换行符的T-SQL查找字符串(缺少回车符)_Sql_Sql Server_Tsql - Fatal编程技术网

带单行换行符的T-SQL查找字符串(缺少回车符)

带单行换行符的T-SQL查找字符串(缺少回车符),sql,sql-server,tsql,Sql,Sql Server,Tsql,我四处寻找,发现了类似的问题,但我找不到确切的答案 有一些输入错误或其他情况会发生,其中一些表的结尾是一个单行换行字符--CHAR(10),前面没有回车符--CHAR(13),这是正确的格式。我对这些行进行了分析,发现有些行具有CR/LF和/或孤立LF 如何查找同时包含CR/LF和孤立LF字符的字符串 这就是我目前掌握的代码 SELECT example.ID , example.DESCRIPTION WHERE example.DESCRIPTION LI

我四处寻找,发现了类似的问题,但我找不到确切的答案

有一些输入错误或其他情况会发生,其中一些表的结尾是一个单行换行字符--CHAR(10),前面没有回车符--CHAR(13),这是正确的格式。我对这些行进行了分析,发现有些行具有CR/LF和/或孤立LF

如何查找同时包含CR/LF和孤立LF字符的字符串

这就是我目前掌握的代码

SELECT 
    example.ID
    , example.DESCRIPTION
    WHERE 
    example.DESCRIPTION LIKE '%' + CHAR(10) + '%'
    AND example.DESCRIPTION NOT LIKE '%' + CHAR(13) + CHAR(10) + '%'
它查找仅包含单个LF字符的字符串,而不是同时包含两个字符的字符串

我也尝试过不同的

DESCRIPTION LIKE '%[^CHAR(13)][CHAR(10)]%' 
没有任何运气。帮忙


编辑:如果不清楚,正确的格式是CR/LF或CHAR(13)CHAR(10)。

这应该可以。使用
PATINDEX
进行稍微复杂的字符串匹配:

DECLARE @T TABLE (S varchar(100))
DECLARE @PAT varchar(10)

SET @PAT = '%[^'+ CHAR(13) + ']' + CHAR(10) + '%'

INSERT INTO @T
VALUES
('AAA')
,('BBB' + CHAR(13) + CHAR(10) + 'BBB')
,('CCC' + CHAR(10) + 'CCC')

SELECT * FROM @T AS t
WHERE PATINDEX(@PAT, S) > 0

这两者在字符串中发生了什么?字符串中是否有单独的LF(如“description”)?或者在最后,他们以CRLFLF结尾?或者你是说在同一个表中,有些行“description”只有LF,而有些行“description”以CRLF结尾?Jayvee有一个很好的问题,因为右侧(description,2)会将其缩小到description结尾,如果是这样的话。你最终会试图替换它们吗?是的,对不起。单个LF位于描述字符串中的任意位置。我的重点不是字符串的结尾,而是在它所在的任何位置查找单独的LF。这可能是一个不确定的问题,但是
AAA
BBB
CCC
的目的是什么?@user3394493只是演示代码,这样你就可以知道返回哪一行了。
SELECT
  example.ID
, example.DESCRIPTION
FROM MyTable
WHERE example.DESCRIPTION LIKE '%'+CHAR(13)+CHAR(10)+'%'         --contains CRLF 
  AND (example.DESCRIPTION LIKE CHAR(10)+'%'                     --AND (starts with LF
    OR example.DESCRIPTION LIKE '%[^'+CHAR(13)+']'+CHAR(10)+'%') --     OR contains [^CR]LF)