SQL Server 2008中的功能类似于mysql中的GREATEST吗?
技术问答
175 人阅读
|
0 人回复
|
2023-09-13
|
我想找到多列的最大值。
" ^# x/ z4 Y: z. YMySQL支持该GREATEST功能,但SQL Server不支持。- |& N0 Y' z) {1 k- F( {9 L, Z
SQL Server 2008中是否有与此相似的功能?
5 P# A+ J1 q! b) c 4 A, k: h; A/ Z& V% {
解决方案:
; d: H, f& C* E8 r5 ^. H . h' R8 a6 o, e4 X# |1 p
+ `" g, ?* }& P8 h, F$ H( F) K
5 i% {" E+ e) e0 k1 G: b- @ 否。但是子查询可以访问外部查询中的列,因此您可以添加一个子查询UNION ALL,将感兴趣的列作为派生表,然后从中进行选择max。% J1 _6 `! V7 Y
SELECT *, ; b4 H3 |9 L: g7 `
(SELECT MAX(c) FROM 0 d% ]( v. |" A- j5 }1 w
(SELECT number AS c
! n- L. j! U: Z UNION ALL 8 K! s- U5 W Y2 d
SELECT status) T) AS GreatestNumberOrStatus
: {8 }" e" x9 P" XFROM master..spt_values
8 |$ b( T+ z2 W$ Y* h
1 V, v3 {9 A2 f或像您在2008年时一样简洁的版本。
2 m$ ?# T! V8 p7 L$ }* v7 k% ESELECT *, 6 V* j, h2 c5 p! o* ?
(SELECT MAX(c) FROM (VALUES(number),(status)) T (c)) AS Greatest
9 A7 J" b1 B6 ]! j4 fFROM master..spt_values |
|
|
|
|
|