<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Oracle行列操作--合并行與按字段拆分

      1、在實際工作中遇到根據某一字段將多行合并成一行的情況,我們下面以選修課的例子進行說明:

      -- create table
      create table XXK
      (
        id    NUMBER,
        rymc  NVARCHAR2(50),
        xxkmc NVARCHAR2(50)
      )
      ---insert test data
      insert into XXK values(1,'小明','編程');
      insert into XXK values(2,'小明','繪畫');
      insert into XXK values(3,'小明','音樂');
      insert into XXK values(4,'小紅','繪畫');
      insert into XXK values(5,'小紅','音樂');

      image

      如果我們要實現將所有的人員顯示為一行,選修的不同可成通過逗號連接呢(下圖效果)?

      image

      這個可以使用Oracle的LISTAGG函數,其具體語法如下

      LISTAGG(column, delimiter) WITHIN GROUP (ORDER BY column)

      其中:

      column為需要合并的列的名稱

      delimiter為分割符號

      那么實現的語句我們可以寫成:

      SELECT T.RYMC, LISTAGG(TO_CHAR(T.XXKMC), ',') WITHIN GROUP(ORDER BY XXKMC) AS XXKLIST
        FROM XXK t
       GROUP BY T.RYMC

      特別注意:

      我在具體使用過程中,有時候往往寫的語句沒有問題,就是不返回結果或者返回結果有亂碼等情況,這是因為字段的數據類型導致的,進行一下轉換即可,就如上面的SQL,其通過TO_CHAR(T.XXKMC)對選修課名稱進行了類型轉換。

      2、如果我要實現相反的效果呢?先制作測試數據。

      -- create table
      create table XXK2
      (
        id    NUMBER,
        rymc  NVARCHAR2(50),
        xxkmc NVARCHAR2(50)
      )
      ---insert test data
      insert into XXK2 values(1,'小明','編程,繪畫,音樂');
      insert into XXK2 values(2,'小紅','繪畫,音樂');

      這里可以使用regexp_substr函數來實現:

      regexp_substr(str, pattern [, position [, occurrence [, match_param]]])

      其中:

      str是需要進行處理的字符串列

      pattern是正則表達式

      position其實位置,從第幾個字符開始匹配

      occurrence獲取第幾個分割出來的組

      match_param模式,i不區分大小寫,c為區分大小寫,默認是c

      具體語句如下:

      SELECT T.RYMC, REGEXP_SUBSTR(T.XXKMC, '[^,]+', 1, Level) AS XXK_CF
        FROM XXK2 T
      CONNECT BY Level<= REGEXP_COUNT (T.XXKMC, ',' ) +1  and t.RYMC = prior t.RYMC  and prior dbms_random.value is not null

      注意:

      在本例中,level并不是固定不變的,要根據實際選修的課程數來確定,其中REGEXP_COUNT就是來做這個工作的。

      需要通過人員進行限定同時處理空的情況t.RYMC = prior t.RYMC  and prior dbms_random.value is not null,否則會出現錯亂的情況,如下所示:

      image


      posted on 2023-08-23 18:35  jingkunliu  閱讀(1088)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 亚洲中文字幕精品第三区| 特黄少妇60分钟在线观看播放| 丝袜高潮流白浆潮喷在线播放| 免费无码中文字幕A级毛片| 免费看久久妇女高潮a| 精品国产中文字幕av| 天天干天天日| 亚洲 制服 丝袜 无码| 欧美牲交a欧美牲交aⅴ免费真| 麻豆精品一区二区综合av| 免费看又黄又无码的网站| 欧美人与动交视频在线观看| 噜噜噜噜私人影院| 会东县| 亚洲一区二区三区在线激情| 亚洲一区二区精品极品| 国产一区二区高清不卡| 99精品日本二区留学生| 放荡的少妇2欧美版| 国产综合久久久久久鬼色| 国产自产在线视频一区| 激情在线一区二区三区视频| 国产精品免费视频不卡| 日本一区二区三区免费播放视频站| 国产亚洲精品自在久久vr| 伊人久久久av老熟妇色| 中文字幕制服国产精品| 亚洲欧美日韩成人综合一区| 国产真实露脸乱子伦原著| 亚洲第一国产综合| 国产精品成人高潮av| 午夜羞羞影院男女爽爽爽| 国产成本人片无码免费| 亚洲一区成人在线视频| 镇安县| 人妻无码∧V一区二区| 高清免费毛片| 亚洲av产在线精品亚洲第一站| 少妇高潮毛片免费看| 色一伦一情一区二区三区| 国产精品三级中文字幕|