我在VARBINARY(200)列上有一个索引。如何进行利用该索引的前缀查询?
我尝试了WHERE LEFT(column, 20) = @value
,但没有利用索引。
我正在使用SQL Server 2014。
答案 0 :(得分:2)
一种方法可能会使用between
。像这样:
where column >= left(val, 20) and column < left(val, 20) + ???
我不确定究竟是什么?应该是。
也许更好的方法是使用计算列,但这假设您总是在寻找20个字节:
alter table t add column_20 as (cast(column as varbinary(20));
create index idx_t_column20 on t(column_20);
然后,等式应该使用索引:
where column_20 = @value