1
有人可以解釋我這個charindex函數在SQL中的奇怪行爲嗎?我們正在搜索第二個字母是'o'的值。我不明白爲什麼查詢1和3不會返回'OO software 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
SELECT titel FROM @T WHERE titel LIKE '_o%'
titel
-----------------------------
1 Mobotu
2 OO software ontwerp
3 Compleet handboek Access 97
4 Compleet handboek Access 2000
5 Compleet handboek Access 95
查詢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返回搜索到的字母的第一個位置。我必須設置WHIN CHARINDEX('o',titel,2)= 2。我的錯誤。 – Kevin