我有一个橄榄球数据库+播放器表。在播放器表中我有表现,我想表现为
我不知道列应该是什么数据类型。这样做的公式或功能是什么?
请帮忙
答案 0 :(得分:4)
您可以像这样定义列:
performance tinyint not null check (performance in (0, 1, 2))
tinyint只需1个字节的值,值的范围可以是0到255。
如果您将值存储为1 - 低,2 - 中,3 - 高并且正在使用SQL Server 2012+,那么您可以使用CHOOSE
函数将值转换为文本,如下所示:
select choose(performance,'Low','Medium','High')
. . .
如果你真的想存储为0,1,2,请使用:
select choose(performance+1,'Low','Medium','High')
. . .
如果您使用较低版本的SQL Server,可以使用CASE
,如下所示:
case performance
when 0 then 'Low'
when 1 then 'Medium'
when 2 then 'High'
end
答案 1 :(得分:1)
您可以通过多种方式处理此问题。一种方法是使用int
列来表示效果,该列将采用值0, 1, 2, ...
。要获得这些性能的标签,您可以创建一个单独的表,将这些数字映射到描述性字符串,例如。
id | text
0 | low
1 | medium
2 | high
然后,只要您需要全文说明,就可以加入此表。请注意,这可能是随着性能类型数量开始变大而扩展的唯一选项。
如果您不想要单独的表,您还可以使用CASE
表达式在查询时生成标签,例如
CASE WHEN id = 0 THEN 'low'
WHEN id = 1 THEN 'medium'
WHEN id = 1 THEN 'high'
END
答案 2 :(得分:1)
1-列数据类型应为b int。 2-你发送日期的地方首先检查表现如下: - if(性能=低) perVar = 0 发送到数据库
答案 3 :(得分:1)
我会在性能表中使用TINYINT数据类型来节省空间,然后使用第二个表中的FOREIGN KEY CONSTRAINT来保存描述。约束将强制在性能表中输入0,1,2,同时提供可以增长以包括其他性能指标的规范化解决方案。