我们有一张旧的 SQL 表格,SQL Server 2000 使用了近 10 年。
其中,我们的员工工号存储为 char(6)
,范围从000001
到999999
。
我正在编写一个 web 应用程序,需要存储员工工号。
在我的新表格中,我可以采取捷径并复制旧表格,但是我希望通过仅存储 1
到999999
的int
值来实现更好的数据传输、更小的大小等优点。
在 C# 中,我可以快速地使用以下格式设置符号将 int
值格式化为工号:
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
我该如何修改这个简单的SQL查询语句,使得返回值也可以被格式化?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
如果EmployeeID
是7135,则此查询应返回007135
。
0
是有意义的,那么为什么要将它改为INT
呢? - OdedFORMAT
函数 :-) - marc_sint
值占用的空间比char(6)
小得多,而每个制造的零件中都会有多个这样的条目。效率。 - user153923DATALENGTH()
函数来节省两个字节的存储空间。如果该列可能在索引中使用,你可能会节省超过 2MB 的空间。而且,加上其他列的存储空间,这 2 个字节可能足以减少行长度,从而每行可节省一个 4KB 的页面。这个系统是否要部署在移动平台上?或者你是不是把注意力放在了一个无产出的领域? - HABO