繁体   English   中英

整数SQL Server T-SQL中的最大值常量?

[英]integer Max value constants in SQL Server T-SQL?

在T-SQL中是否有任何常量,例如在其他一些语言中提供数据类型的最大值和最小值范围,例如int?

我有一个代码表,其中每一行都有一个上下范围列,我需要一个表示一个范围的条目,其中上限是int可以容纳的最大值(有点像一个hackish无穷大)。 我宁愿不对它进行硬编码,而是使用类似SET UpperRange = int.Max

有两种选择:

  • 用户定义的标量函数
  • 属性表

在Oracle中,您可以在Packages中执行 - 最接近的SQL Server具有Assemblies ...

我不认为有任何已定义的常量,但您可以通过将值存储在表中或使用标量值函数来自己定义它们。

设置一个包含三列的表:TypeName,Max和Min。 这样你只需要填充一次。

标量值函数

或者,您可以使用标量值函数GetMaxInt()(请参阅此StackOverflow答案以获取真实示例)。

您可以在此处找到所有最大/最小值: http//msdn.microsoft.com/en-us/library/ms187752.aspx

避免标量 - 像瘟疫一样的功能:
标量UDF性能问题

话虽这么说,我不会使用另一个人建议的3柱表。
这会导致您使用它的任何地方的隐式转换。
如果您需要将其用于多种类型,则还必须多次加入该表。

相反,每个数据类型的每个Min和Max都有一列(使用它自己的数据类型定义)并直接调用它们进行比较。

例:

SELECT *
  FROM SomeTable as ST
  CROSS JOIN TypeRange as TR
  WHERE ST.MyNumber BETWEEN TR.IntMin  AND TR.IntMax

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM