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 閱讀(254) 評論(0)  編輯  收藏 所屬分類: Database
          主站蜘蛛池模板: 乌拉特后旗| 彰化县| 扶余县| 双柏县| 阿瓦提县| 天水市| 成武县| 定西市| 吴忠市| 剑河县| 宝清县| 镇赉县| 焉耆| 石林| 鲁甸县| 莫力| 洛浦县| 揭阳市| 光山县| 兴化市| 金平| 万州区| 深州市| 大英县| 辉南县| 卢氏县| 乐都县| 海宁市| 衡阳县| 镇坪县| 酒泉市| 博野县| 南靖县| 安阳市| 泌阳县| 迁安市| 同仁县| 华池县| 大埔县| 蒙城县| 翼城县|