【发布时间】:2017-06-25 16:21:30
【问题描述】:
是否可以通过更改此列在列上创建索引。 例如 - 我有一列 A (nvarchar),但在查询中我应该替换该列中的值以与列表中的值进行比较。只有当我使用 A 列中的原始值时,经典索引才会起作用。
查询如下所示
SELECT
*
FROM
MyTable
WHERE
REPLACE(A, ' ', '') IN ('aasa', 'asa', 'wew','wewe')
【问题讨论】:
-
在 Where 子句中使用函数将避免使用
Index。使用replace函数更新您的A列,然后可以在where子句中避免替换函数。 -
@Prdp 是的,我知道这种方式,但我需要存储原始值。目前我只看到了方法 - 用替换的数据创建新列 B 并在该列上创建索引。但是会有很多重复的数据。
标签: sql sql-server database indexing