亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

將一列中多行相同的值只顯示在一行

2024-07-21 02:46:22
字體:
來源:轉載
供稿:網友
將一列中多行相同的值只顯示在一行

數據庫環境:SQL SERVER 2008R2

需求如題,左圖為初始數據,右圖是已實現需求的數據展示

基礎數據 已實現需求的數據

簡單說下我的實現思路

1.按id、name排序給原始數據生成行號

2.用遞歸判斷上下行的id是否相等,第一次出現計數器初始值為1,后面再出現則計數器+1

3.對步驟2中生成的結果集再處理,計數器為1的id不變,計數器大于1則id為空字符串

我把實現的代碼貼出來

/*準備基礎數據*/WITH    x0          AS ( SELECT   1 AS id ,                        'a' AS NAME               UNION ALL               SELECT   1 AS id ,                        'b' AS NAME               UNION ALL               SELECT   1 AS id ,                        'c' AS NAME               UNION ALL               SELECT   2 AS id ,                        'e' AS NAME               UNION ALL               SELECT   2 AS id ,                        'd' AS NAME               UNION ALL               SELECT   3 AS id ,                        'f' AS NAME               UNION ALL               SELECT   4 AS id ,                        'h' AS NAME               UNION ALL               SELECT   4 AS id ,                        'j' AS NAME             ),/*按id、name排序生成行號*/        x1          AS ( SELECT   ROW_NUMBER() OVER ( ORDER BY id, name ) AS tid ,                        CAST(id AS VARCHAR(2)) id ,                        name               FROM     x0             ),/*遞歸設置計數器*/        x2 ( tid, id, name, level )          AS ( SELECT   tid ,                        id ,                        name ,                        1 AS level               FROM     x1               WHERE    tid = 1               UNION ALL               SELECT   t1.tid ,                        t1.id ,                        t1.NAME ,                        CASE WHEN t1.id = t2.id THEN level + 1                             ELSE 1                        END level               FROM     x1 t1                        INNER JOIN x2 t2 ON t1.tid = t2.tid + 1             )    /*計數器為1則id不動,否則置為空字符串*/    SELECT  CASE WHEN level = 1 THEN id                 ELSE ''            END id ,            name    FROM    x2

先比我的實現,有一網友提供了更簡單的實現方式

我們來看一下他是怎么實現的

WITH    x0          AS ( SELECT   1 AS id ,                        'a' AS NAME               UNION ALL               SELECT   1 AS id ,                        'b' AS NAME               UNION ALL               SELECT   1 AS id ,                        'c' AS NAME               UNION ALL               SELECT   2 AS id ,                        'e' AS NAME               UNION ALL               SELECT   2 AS id ,                        'd' AS NAME               UNION ALL               SELECT   3 AS id ,                        'f' AS NAME               UNION ALL               SELECT   4 AS id ,                        'h' AS NAME               UNION ALL               SELECT   4 AS id ,                        'j' AS NAME               UNION ALL               SELECT   1 AS id ,                        'j' AS NAME             )    SELECT  REPLACE(CASE WHEN ROW_NUMBER() OVER ( PARTITION BY CAST(ID AS VARCHAR(2)) ORDER BY NAME ) <> '1'                         THEN 0                         ELSE CAST(ID AS VARCHAR(20))                    END, 0, '') AS ID ,            NAME    FROM    x0

實現的思路和我一樣,但他的方法比我的簡單,也容易理解。

我相信,實現該需求的方法不局限于這2種,歡迎各位看官提出更多的解題方法。

(本文完)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合色综合久久综合频道88| 国产91在线视频| 亚洲一区第一页| 日韩中文字幕免费| 最近2019年手机中文字幕| 视频在线观看99| 国产91久久婷婷一区二区| 91久久久久久久一区二区| 久久久精品999| 国产成人一区二区三区小说| 亚洲国产毛片完整版| 亚洲一区免费网站| 在线精品视频视频中文字幕| 国产精品久久久久久久久久小说| 国产精品video| 国色天香2019中文字幕在线观看| 日韩在线观看免费网站| 国产精品99久久久久久www| 久久国产天堂福利天堂| 国产精品视频免费观看www| 欧美噜噜久久久xxx| 久久免费国产精品1| 俺也去精品视频在线观看| 久久欧美在线电影| 亚洲情综合五月天| 亚洲精品日韩在线| 九九热最新视频//这里只有精品| 日韩午夜在线视频| 日本免费久久高清视频| 国色天香2019中文字幕在线观看| 欧美日韩xxx| 国产视频亚洲精品| 亚洲激情在线观看视频免费| 亚洲欧美中文在线视频| 欧美性xxxx极品hd满灌| 91九色视频导航| 欧美大片在线影院| 亚洲精品一区av在线播放| 亚洲系列中文字幕| 久久视频在线免费观看| 欧美精品videos性欧美| 日本不卡高字幕在线2019| 影音先锋欧美精品| 亚洲r级在线观看| 国产成人福利视频| 日韩经典中文字幕| 97国产精品视频| 一个色综合导航| 国产精品一区二区久久精品| 欧美一级视频在线观看| 久久99热这里只有精品国产| 日本午夜精品理论片a级appf发布| 欧美大荫蒂xxx| 精品动漫一区二区三区| 日本久久久久久久久| 自拍偷拍免费精品| 国产在线观看精品一区二区三区| 91国产精品电影| 成人黄色av网站| 亚州国产精品久久久| 国产精品久久久久久av福利软件| 久久亚洲精品国产亚洲老地址| 国产精品精品一区二区三区午夜版| 久久青草精品视频免费观看| 欧美日韩国产123| 97国产精品免费视频| 中文日韩在线观看| 4438全国亚洲精品在线观看视频| 成人精品视频久久久久| 亚洲欧美另类在线观看| 9.1国产丝袜在线观看| 久久久久久久国产精品视频| 亚洲精品久久视频| 日韩av一区在线观看| 国外成人在线播放| 日韩激情av在线免费观看| 97久久超碰福利国产精品…| 亚洲视频在线观看网站| 日韩免费av一区二区| 中文字幕在线视频日韩| 国产精品jvid在线观看蜜臀| 欧美精品久久久久久久久| 美女999久久久精品视频| 成人性教育视频在线观看| 国产精品96久久久久久又黄又硬| 亚洲精品成人久久| 2019亚洲日韩新视频| 欧美中文在线字幕| 国产精品在线看| 黄色一区二区在线观看| 精品视频—区二区三区免费| 久热精品在线视频| 久久久久久午夜| 91黑丝在线观看| 国产精品日日摸夜夜添夜夜av| 色偷偷888欧美精品久久久| 91精品国产91| 精品一区二区亚洲| 久久精品国产一区二区三区| 中日韩美女免费视频网站在线观看| 国产成人在线亚洲欧美| 欧美日韩亚洲一区二| 亚洲午夜av久久乱码| 第一福利永久视频精品| 欧美极品在线播放| 亚洲第一福利网站| 亚洲欧美日韩一区二区在线| 91视频国产一区| 2020国产精品视频| 久久精品国产亚洲精品2020| 国产一区二区免费| 日韩精品中文字幕视频在线| 亚洲精选在线观看| 亚洲视频免费一区| 九九久久综合网站| 日韩在线中文视频| 亚洲性猛交xxxxwww| 亚洲欧美在线磁力| 国产999精品视频| 亚洲91精品在线| 亚洲综合色激情五月| 国产精品网红福利| 日韩精品免费在线视频| 欧美激情高清视频| 成人综合网网址| 欧美日韩裸体免费视频| 久久久久国产一区二区三区| 亚洲午夜精品久久久久久久久久久久| 亚洲丁香婷深爱综合| 国自产精品手机在线观看视频| 欧美国产日韩一区二区在线观看| 久久久久亚洲精品| 国产高清视频一区三区| 69av成年福利视频| 国产精品亚洲激情| 日本精品中文字幕| 日韩中文字幕在线观看| 亚洲欧美一区二区三区久久| 国产精品狼人色视频一区| 国产成人精品综合久久久| 欧美限制级电影在线观看| 影音先锋日韩有码| 亚洲精品国产免费| 欧美www视频在线观看| 国产精品第10页| 成人妇女免费播放久久久| 久久人人爽国产| 亚洲精品国精品久久99热一| 欧美巨猛xxxx猛交黑人97人| 久久久91精品| 国产精品久久视频| 亚洲乱码一区二区| 色噜噜狠狠狠综合曰曰曰88av| 欧美成人黄色小视频| 国产成人啪精品视频免费网| 成人中文字幕在线观看| 久久深夜福利免费观看| 97久久精品在线| 日本精品在线视频| 欧美视频在线看| 国产区精品视频| 色妞欧美日韩在线| 国产精品久久久久久久久久99| 国产亚洲精品激情久久|