1
SQLでcharindex関数のこの奇妙な動作を教えてもらえますか? 2番目の文字が 'o'の値を検索しています。クエリー1と3が 'OO software ontwerp'を返さない理由を理解できませんが、クエリー4のlike演算子を使用すると表示されます。クエリ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()
見つかったので、charindexは検索された文字の最初の位置を返します。 CHARINDEX( 'o'、titel、2)= 2を設定しなければならなかった。私の間違い。 – Kevin