1
누군가가 SQL에서 charindex 함수의이 이상한 동작을 설명해 주시겠습니까? 우리는 두 번째 문자가 'o'인 값을 검색합니다. 질문 1과 3이 'OO 소프트웨어 ontwerp'을 반환하지 않는 이유를 이해하지 못합니다. 쿼리 4에서 이와 유사한 연산자를 사용하면 표시됩니다. 쿼리 5에서 대문자 'O'를 검색 할 때도 'OO software ontwerp'값이 표시되지 않습니다.SQL Charindex 대 LIKE 연산자
DECLARE @T TABLE (Titel VARCHAR(255))
INSERT INTO @T VALUES
('Mobotu'),('OO software ontwerp'),('Compleet handboek Access 97'),('Compleet handboek Access 2000'),('Compleet handboek Access 95')
쿼리 1
SELECT titel FROM @T WHERE CHARINDEX('o', titel, 1) = 2
titel
-----------------------------
1 Mobotu
2 Compleet handboek Access 97
3 Compleet handboek Access 2000
4 Compleet handboek Access 95
쿼리 2
SELECT titel FROM @T WHERE CHARINDEX('o', titel, 1) = 1
titel
-----------------------------
1 OO software ontwerp
조회 3
SELECT titel FROM @T WHERE CHARINDEX('o', LOWER(titel), 1) = 2
titel
-----------------------------
1 Mobotu
2 Compleet handboek Access 97
3 Compleet handboek Access 2000
4 Compleet handboek Access 95
조회 4
0,123,989,566,쿼리 5
SELECT titel FROM @T WHERE CHARINDEX('O', titel, 1) = 2
titel
-----------------------------
1 Mobotu
2 Compleet handboek Access 97
3 Compleet handboek Access 2000
4 Compleet handboek Access 95
찾았습니다. charindex는 검색된 문자의 첫 번째 위치를 반환합니다. CHARINDEX ('o', titel, 2) = 2로 설정해야했습니다. 실수였습니다. – Kevin