Jcat
          寵辱不驚,閑看庭前花開花落~~
          posts - 173,comments - 67,trackbacks - 0
          -- Test?Case
          create ? table ?sale(
          sale_id?
          char ( 1 )
          ,sale_type?
          char ( 1 )
          )
          --
          insert ? into ?sale? values ?( ' a ' , ' Y ' );
          insert ? into ?sale? values ?( ' b ' , ' N ' );
          insert ? into ?sale? values ?( ' b ' , ' Y ' );
          insert ? into ?sale? values ?( ' b ' , ' Y ' );
          insert ? into ?sale? values ?( ' c ' , ' Y ' );
          insert ? into ?sale? values ?( ' c ' , ' N ' );
          insert ? into ?sale? values ?( ' d ' , ' N ' );
          insert ? into ?sale? values ?( ' d ' , ' N ' );

          Count the number of 'Y' and the number of? 'N' separately
          -- full?join
          select ? * ? from ?
          (
          select ?sale_id,? count ( * )? as ?num_y? from ?sale
          where ?sale_type = ' Y '
          group ? by ?sale_id
          )?sale_y
          full ? join
          (
          select ?sale_id,? count ( * )? as ?num_n? from ?sale
          where ?sale_type = ' N '
          group ? by ?sale_id
          )?sale_n
          using?(sale_id)
          order ? by ?sale_id

          -- decode
          select ?sale_id
          ?,
          sum (decode(sale_type, ' Y ' , 1 , 0 ))? as ?num_y?? -- note?using?sum?to?implement?count
          , sum (decode(sale_type, ' N ' , 1 , 0 ))? as ?num_n
          from ?sale
          group ? by ?sale_id
          order ? by ?sale_id

          -- case
          select ?sale_id
          ?,
          sum ( case ? when ?sale_type = ' Y ' ? then ? 1 ? else ? 0 ? end )? as ?num_y?? -- note?using?sum?to?implement?count
          , sum ( case ? when ?sale_type = ' N ' ? then ? 1 ? else ? 0 ? end )? as ?num_n
          from ?sale
          group ? by ?sale_id
          order ? by ?sale_id

          Separate sale_type column
          -- union?all
          select ?sale_id,?sale_type? as ?type_y,? null
          from ?sale
          where ?sale_type = ' Y '
          union ? all
          select ?sale_id,? null ,?sale_type? as ?type_n
          from ?sale
          where ?sale_type = ' N '
          order ? by ?sale_id

          -- decode
          select ?sale_id
          ,decode(sale_type,
          ' Y ' , ' Y ' , null ) as type_y
          ,decode(sale_type,
          ' N ' , ' N ' , null ) as type_n
          from ?sale
          ?
          -- case
          select ?sale_id
          ,(
          case ? when ?sale_type = ' Y ' ? then ? ' Y ' ? else ? null ? end )? as ?type_y
          ,(
          case ? when ?sale_type = ' N ' ? then ? ' N ' ? else ? null ? end )? as ?type_n
          from ?sale
          posted on 2006-12-05 13:11 Jcat 閱讀(257) 評論(0)  編輯  收藏 所屬分類: Database
          主站蜘蛛池模板: 天祝| 罗山县| 昌图县| 洛隆县| 莒南县| 霍林郭勒市| 屯昌县| 萨嘎县| 明水县| 奈曼旗| 安丘市| 项城市| 葫芦岛市| 汾西县| 乐陵市| 三门县| 通辽市| 天水市| 新巴尔虎右旗| 丹棱县| 桂平市| 旺苍县| 双流县| 乌鲁木齐市| 珠海市| 绵阳市| 碌曲县| 冕宁县| 榆社县| 那曲县| 盐亭县| 疏勒县| 长沙市| 宜都市| 江陵县| 喀喇沁旗| 崇仁县| 台北县| 隆子县| 巫溪县| 汝城县|