我一直在四处寻找,我也发现了类似的问题,但我找不到我想要的东西。
有一些输入错误或其他情况发生在有最终只有一个换行字符的表 - 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)。
答案 0 :(得分:1)
这应该有效。使用PATINDEX
比LIKE更复杂的字符串匹配:
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
答案 1 :(得分:0)
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)