国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

求多個列的最大值/最小值

2024-07-21 02:45:59
字體:
來源:轉載
供稿:網友
求多個列的最大值/最小值

數據庫環境:SQL SERVER 2008R2 

  如題,現有數據如圖1,要求求出每行相同數據類型的最大值/最小值。即圖2的效果。

圖2

  Oracle里有專門的greatest()、least()函數求多個列的最大、最小值,但是,在Sql Server里,

還沒有對應實現的函數。我想到的方法是通過想列轉行、行轉列實現。

1.數據準備

WITH    x0          AS ( SELECT   1 AS id ,                        3 AS c1 ,                        4 AS c2 ,                        0 AS c3 ,                        5 AS c4 ,                        2 AS c5               UNION ALL               SELECT   2 AS id ,                        2 AS c1 ,                        3 AS c2 ,                        1 AS c3 ,                        6 AS c4 ,                        4 AS c5               UNION ALL               SELECT   3 AS id ,                        6 AS c1 ,                        4 AS c2 ,                        11 AS c3 ,                        2 AS c4 ,                        9 AS c5             )
View Code

2.列轉行

, x1          AS ( SELECT   *               FROM     x0 UNPIVOT( c FOR attr IN ( c1, c2, c3, c4, c5 ) ) t             )
View Code

3.union all合并每行的最大、最小值

,x2          AS ( SELECT   id ,                        attr ,                        c               FROM     x1               UNION ALL               SELECT   id ,                        'c6' AS attr ,                        MAX(c)               FROM     x1               GROUP BY id               UNION ALL               SELECT   id ,                        'c7' AS attr ,                        MIN(c)               FROM     x1               GROUP BY id             )
View Code

4.行轉列實現最終結果

 SELECT  id ,            c1 ,            c2 ,            c3 ,            c4 ,            c5 ,            c6 AS c_max ,            c7 AS c_min    FROM    ( SELECT    *              FROM      x2            ) AS t1 PIVOT( MAX(c) FOR attr IN ( c1, c2, c3, c4, c5, c6, c7 ) ) t2
View Code

  SQL腳本是合在一起執行的,這里為了說明思路,把SQL拆開講了。

當然,實現該功能的方法不止這一種,具體可以參看這篇文章 http://blog.csdn.net/wufeng4552/article/details/4681510/。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁都县| 绩溪县| 航空| 鄯善县| 龙门县| 蒲江县| 陆良县| 铁岭市| 南郑县| 久治县| 苍南县| 济源市| 邢台县| 洛南县| 凤城市| 文成县| 新乐市| 孟连| 平泉县| 武隆县| 黑山县| 璧山县| 丹东市| 内黄县| 西藏| 富源县| 景洪市| 丰城市| 铜梁县| 化州市| 永年县| 萝北县| 临桂县| 九龙坡区| 林周县| 中牟县| 三江| 临漳县| 土默特右旗| 专栏| 涿鹿县|