现有表,两个字段,公司名(主键,字符型),关键字(字符型)
表结构示例如下:
    公司名             关键字
   上海宝钢      $无缝钢$$冷轧钢$$优质钢$
   武汉钢铁厂    $无缝钢$$低碳钢$$中碳钢$
  攀枝花钢铁厂   $优质钢$$中碳钢$$$
   辽宁钢铁厂    $优质钢$$$$$
  
如上所示,每个关键字字段有  1 到 3  个关键词(无缝钢,优质钢。。),用$$格开 现在想统计所有关键词的数量,并排序。请问高手如何解决?

解决方案 »

  1.   

    不太明白楼主的意思,大概理解了一下,不知道对不对.select  COM,decode(1,sign(instr(key,'$$$$$$')),0,sign(instr(key,'$$$$$')),1,sign(instr(key,'$$$')),2,3) count
    from test4
    order by countCOM是 公司名
    key是 关键字
      

  2.   

    SQL> select * from test_csdn;A  B
    -- --------------------
    x  a
    y  abc
    z abe
    w  dbeSQL> create table test_csdn1 as select substr(b,1,1) as col1,substr(b,2,1) as col2,
      2  substr(b,3,1) as col3
      3  from test_csdn;表被创建SQL> select * from test_csdn1;COL1 COL2 COL3
    ---- ---- ----
    a         
    a    b    c
    a    b    e
    d    b    eSQL> select 'a',count(*) from test_csdn1
      2  where col1='a' or nvl(col2,'-1')='a' or nvl(col3,'-1')='a'
      3  union all
      4  select 'b',count(*) from test_csdn1
      5  where nvl(col1,'-1')='b' or nvl(col2,'-1')='b' or nvl(col3,'-1')='b'
      6  union all
      7  select 'c' ,count(*)  from test_csdn1
      8  where nvl(col1,'-1')='c' or nvl(col2,'-1')='c' or nvl(col3,'-1')='c'
      9  ;'A'                                COUNT(*)
    -------------------------------- ----------
    a                                         3
    b                                         3
    c                                         1
      

  3.   

    不好意思,还少统计了一个‘d’,大概思路就是这样的 。可以先调replace函数把‘$’去掉