<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    背著手扇扇子的人
    往事隨風(fēng)......前事如夢(mèng)......
    posts - 35,  comments - 17,  trackbacks - 0

    有人問(wèn)這樣的sql該怎么實(shí)現(xiàn):
    表數(shù)據(jù)和結(jié)構(gòu)
    ?? ?CODE?NAME????B01????S01????B02????S02
    ????1??????????張三???????數(shù)學(xué)????80??
    ????1??????????張三????????????????????????????語(yǔ)文????75
    ????2??????????王五???????數(shù)學(xué)????70??
    ????2??????????王五????
    ????3??????????李四???????數(shù)學(xué)????50??
    ????3??????????李四???????????????????????????語(yǔ)文????88

    希望查詢出如下結(jié)果:
    ?? ?CODE?SUM_STR(NAME)????B01????SUM_STR(S01)????B02????SUM_STR(S02)
    ????1????????????????張三????????????????????數(shù)學(xué)????????????????80?????????? 語(yǔ)文????????????75
    ????2????????????????王五????????????????????數(shù)學(xué)????????????????70??
    ????3????????????????李四????????????????????數(shù)學(xué)????????????????50?????????? 語(yǔ)文?????????????88
    這個(gè)問(wèn)題可以采用自定義的聚集函數(shù)來(lái)實(shí)現(xiàn):

    create ? or ? replace ?type?strcat_type? as ?object?(
    ????cat_string?
    varchar2 ( 4000 ),
    ????static?
    function ?ODCIAggregateInitialize(cs_ctx? In ?Out?strcat_type)? return ? number ,
    ????member?
    function ?ODCIAggregateIterate(self? In ?Out?strcat_type,value? in ? varchar2 )? return ?

    number ,
    ????member?
    function ?ODCIAggregateMerge(self? In ?Out?strcat_type,ctx2? In ?Out?strcat_type)?

    return ? number ,
    ????member?
    function ?ODCIAggregateTerminate(self? In ?Out?strcat_type,returnValue?Out?

    varchar2 ,flags? in ? number )? return ? number
    )
    /


    ------------------------------------

    create ? or ? replace ?type?body?strcat_type? is
    ??static?
    function ?ODCIAggregateInitialize(cs_ctx? IN ?OUT?strcat_type)? return ? number
    ??
    is
    ??
    begin
    ??????cs_ctx?:
    = ?strcat_type(? null ?);
    ??????
    return ?ODCIConst.Success;
    ??
    end ;

    ??member?
    function ?ODCIAggregateIterate(self? IN ?OUT?strcat_type,
    ???????????????????????????????????????value?
    IN ? varchar2 ?)
    ??
    return ? number
    ??
    is
    ??
    begin
    ??????
    if ?self.cat_string? is ? null ? then
    ?????????self.cat_string?:
    = ?value;
    ??????
    end ? if ;
    ??????
    return ?ODCIConst.Success;
    ??
    end ;

    ??member?
    function ?ODCIAggregateTerminate(self? IN ?Out?strcat_type,
    ?????????????????????????????????????????returnValue?OUT?
    varchar2 ,
    ?????????????????????????????????????????flags?
    IN ? number )
    ??
    return ? number
    ??
    is
    ??
    begin
    ??????returnValue?:
    = ?self.cat_string;
    ??????
    return ?ODCIConst.Success;
    ??
    end ;

    ??member?
    function ?ODCIAggregateMerge(self? IN ?OUT?strcat_type,
    ?????????????????????????????????????ctx2?
    IN ?Out?strcat_type)
    ??
    return ? number
    ??
    is
    ??
    begin
    ?????? if self.cat_string is null then
    ?????????????????? self.cat_string :=? ctx2.cat_string;
    ????????? end if;
    ?????? return ?ODCIConst.Success;
    ??
    end ;

    end ;
    /

    -------------------

    CREATE ? OR ? REPLACE ? FUNCTION ?sum_str(input? varchar2 ?)
    RETURN ? varchar2
    PARALLEL_ENABLE?AGGREGATE?USING?strcat_type;
    /

    -------最后查詢語(yǔ)句:

    select ?code,sum_str(name),?sum_str(b01)?b01,sum_str(s01)?,sum_str(b02)?b02,sum_str(s02)
    from ?javaeye? group ? by ?code? order ? by ?code
    posted on 2009-01-05 21:55 kebo 閱讀(979) 評(píng)論(4)  編輯  收藏 所屬分類(lèi): oracle

    FeedBack:
    # re: 一個(gè)sql寫(xiě)法
    2009-01-06 15:19 | 徐堯
    mysql有函數(shù),可以分組拼接字符串  回復(fù)  更多評(píng)論
      
    # re: 一個(gè)sql寫(xiě)法
    2009-01-06 15:56 | ccc
    nc的表設(shè)計(jì)  回復(fù)  更多評(píng)論
      
    # re: 一個(gè)sql寫(xiě)法
    2009-01-06 17:27 | kebo
    確實(shí)是比較nc的表設(shè)計(jì),只是別人問(wèn)道怎么辦,幫別人說(shuō)了一下而已,主要其實(shí)想說(shuō)的聚集函數(shù)的自定義寫(xiě)法而已。呵呵,見(jiàn)笑  回復(fù)  更多評(píng)論
      
    # re: 一個(gè)sql寫(xiě)法
    2009-01-06 17:28 | kebo
    還不是完全的分組拼接字符串,不過(guò)也差不多  回復(fù)  更多評(píng)論
      

    <2009年1月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類(lèi)

    隨筆檔案

    文章檔案

    相冊(cè)

    收藏夾

    朋友

    搜索

    •  

    積分與排名

    • 積分 - 23190
    • 排名 - 1598

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲视频免费在线观看| www国产亚洲精品久久久日本| 亚洲中文字幕一二三四区苍井空| 免费激情视频网站| av无码国产在线看免费网站| 亚洲高清中文字幕免费| 亚洲成aⅴ人片久青草影院| 午夜不卡久久精品无码免费| 亚洲AV色欲色欲WWW| 婷婷亚洲久悠悠色悠在线播放| 成年人免费网站在线观看| www免费黄色网| 国产成人精品日本亚洲直接| 久久久久亚洲精品天堂久久久久久| 亚州免费一级毛片| 亚洲一区二区三区免费| 亚洲久悠悠色悠在线播放| 亚洲高清国产AV拍精品青青草原| 女人18毛片特级一级免费视频| 野花香高清在线观看视频播放免费| 亚洲精品9999久久久久无码| 7777久久亚洲中文字幕蜜桃| 亚洲av午夜精品一区二区三区| 成年黄网站色大免费全看| a毛片免费全部在线播放**| 亚洲AV成人无码网天堂| 亚洲日韩乱码中文无码蜜桃臀| 伊人久久综在合线亚洲91| 成人爱做日本视频免费| 99精品视频在线观看免费专区| 日韩电影免费在线观看网址| 国产成人亚洲综合网站不卡| 久久亚洲伊人中字综合精品| 亚洲国产精品尤物yw在线| 搡女人免费视频大全| 啦啦啦完整版免费视频在线观看| 成人国产精品免费视频| 国产亚洲精彩视频| 亚洲啪AV永久无码精品放毛片| 亚洲AV色吊丝无码| 久久亚洲精品成人AV|