ライブ環境ではない自習問題です。
私は常にAで終わる名前を照会しているので、そのようなデータにフィルターインデックスを作成すると思ったので、代わりにシークまたはスキャンを行います。
しかし、それは私にエラーを与えています。
--Usual Query
SELECT c.contactname
FROM sales.Customers c where c.contactname like '%A'
--1st Tried failed
create NONCLUSTERED INDEX UCI_NameLikeA
on sales.customers(contactname)
where right(contactname,1)='A'
Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword 'LIKE'
--2nd method tried failed
create NONCLUSTERED INDEX UCI_NameLikeA
on sales.customers(contactname)
where right(contactname,1)='A'
Msg 10735, Level 15, State 1, Line 3
Incorrect WHERE clause for filtered index 'UCI_NameLikeA' on table 'sales.customers'.
Like および RIGHT 関数がフィルター インデックスで許可されないのはなぜですか? スキャンの代わりにシークできる他の方法はありますか?