이 질문이 분명하지 않은 경우 죄송합니다. 단편적인 이야기는 누군가 실수로 데이터 오염 문제가 발생했다는 것입니다. 결과적으로 'value, value, value'와 'this는 값이고 this는 값입니다'라는 효과를 보이는 t-sql 항목이 몇 가지 있습니다. 영향을받은 110,000 건 이상의 레코드).T-SQL : 'ab, ab ab'대신 'ab, ab'를 필터링하는 방법은 무엇입니까?
문제는 SQL WHERE 절을 사용하여 공백 이외의 문자 (또는 공백이없는 문자)로 둘러싸인 문자열의 쉼표가있는 항목을 일치시켜야한다는 것입니다. 예를 들어, 다음 항목 표를 만든다. 주어진 항목이 쿼리에 의해 반환되어야하는지 아닌지를 나타내는 비트가있다.
SELECT
*
FROM @Ttests
WHERE PatIndex('[^ ]%,[^ ]%', toMatch) > 0
OR PatIndex(',%', toMatch) > 0
OR PatIndex('%,', toMatch) > 0
그러나, 그것은 마지막 항목에 잘못된 일치를 반환
DECLARE @Ttests Table (
toMatch varchar(4000),
shouldMatch bit
)
INSERT INTO @Ttests
VALUES
('value1,value2,value3,value1,value2,value3', 1),
('value1, value2, value3', 0),
(',value1, value2, value3', 1), --starts with a comma
('value1, value2,value2', 1),
('this, is a sentence,this, is a sentence', 1),
('value1, value2, value3,', 1), -- ends in a comma
('value1 ,value2, value3', 0);
오늘 밤을 얻을 수있을 것 가장 가까운의 라인을 따라 무언가이다. 어떤 아이디어?
비정규 화 된 데이터 검색, YUCK ... –