我试图了解SQL Server中是否存在类似于Oracle或PostgreSQL中基于函数的索引
在PostgreSQL中,我可以使用以下语法创建基于函数的索引:
CREATE INDEX sample ON "TestDB" (("expression1" || ' ' || "expression2"));
我找到了一个article,我在SQL Server中找到了一个名为“计算列索引”的东西。这是一个基于函数的索引,就像在Oracle / PostgreSQL中一样吗?任何人都可以提供一个示例查询来创建/查看这样的索引吗?
答案 0 :(得分:20)
我根据Damien的评论进一步研究,发现答案与Oracle / PostgreSQL基于函数的索引非常接近。
我有一个名为PARCELS
的表,我使用下面给出的alter语句创建了一个新列COMPUTEDPARCELS
:
ALTER TABLE [PARCELS] ADD COMPUTEDPARCELS AS CONVERT(CHAR(8), [MAPNO], 112);
然后在计算列上创建索引:
CREATE INDEX function_index ON [PARCELS](COMPUTEDPARCELS);
当然,这个例子非常简单但行为就像一个基于函数的索引。