扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网技术社区 来源:赛迪网技术社区 2007年8月28日
关键字: 最大值 SQL Server SQL Server 各版本 数据库
对于简单Min()和Max()函数的作用,SQL有它自己的规定,即比较一个列中的值。既然没有内置函数来比较任何两个值并确定最大或最小值,你应该自行编写这种函数。我决定把它们叫做Min2()和Max2()。见列表A。 5x n /
9+ 5QS
你可以用这个代码对它们进行测试: 9(P"A~BUi
JE@^3
SELECT dbo.Min2( 23, 34 ) YV%{hnr
K!:5\G9
SELECT dbo.Max2( 23,NULL) !P?-HO
fT1+&Br
SELECT dbo.Min2( NULL, 34 ) G?b5Ecc7P
\QX-tT3^C
SELECT dbo.Max2( 23,NULL) KBUJF@ :
$FCC:(i
要比较原始表中的值,你可以简单地嵌入函数调用,就像这样: SF 2xSd
(O^mM+u"
SELECT dbo.Max2( Value1, dbo.Max2( Value2, dbo.Max2( Value3, Value4 ) ) ) XJ8d8T4m
5<D8WtJ7
FROM dbo.MinMax C3Mpr^=v7j
,T?PG<j
根据原始表,这个调用的结果如下: '{G` H0U@E
>nj%K%<O
7 sU'`=jIJ
t*51W,<h0
10 ]>*kFFpas
dApgzU@;
27 jdvybE&#Y
Y~q~sT
81 D xbX
TEAzg
还是有一个问题:上面的代码把NULL转换成0。在Min2()函数中,这意味着如果有自变量为NULL值,则返回结果为0。在多数情况下,我认为这样做是恰当的,但在一些特殊情况下,你可能希望返回NULL而不是0。 9 Y/o
r)K\)FOM'i
你可能已经编写了一个刚好只接受四个参数的函数,但这样的函数过于特殊,不能在其它情况下使用。花一点时间考虑更普遍的情况,你将会得到更加有用的函数。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者