具有不同数据类型的计算列

时间:2011-11-21 16:05:47

标签: sql sql-server-2008

我希望计算列具有多种数据类型并能够为它们编制索引。此问题与此SO帖子有关:Linq: Sort by Date when its stored as text

这是我的数据库设置:

id INT
type INT
data computed column

以下是此表中可能包含的一些示例数据

id---------type--------data
1----------1-----------190
2----------2-----------9/29/1972
3----------3-----------12.72
4----------1-----------2
5----------4-----------this is a test

如您所见,data列有多种数据类型。我想知道如何实现这样的系统并将data列的索引作为它应该的数据类型。例如,

  • 类型为1:那么索引将为INT
  • 类型为2:那么索引将为DATE或DATETIME
  • 类型为3:那么索引将为DECIMAL 等等。

是否可以为计算列提供几种不同数据类型的索引?如果是这样,我该怎么做?   - 然后索引将是一个inte

2 个答案:

答案 0 :(得分:4)

列只有一种数据类型,而不是几种。你不能做你要求的事。

您的设计是EAV,是anti-pattern

如果您坚持,可以根据单个varchar类型添加更多计算列。但那么为什么不把它们放在首位呢?或者使用索引视图来转换和索引?

答案 1 :(得分:0)

您不能为列使用不同的数据类型