1.一个表中的字段如下:id (主键) name.
请问select count(*)和  select  count(id)有什么区别?
2.合并列如何实现?与上个问题无关,不使用存储过程
parentname   childname
11             11child1
11             11child2
22             22child1查询后的列为:
parentname   childname
11             11child1   11child2
22             22child1

解决方案 »

  1.   

    1.count(id)不统计null值
    2.select parentname,replace(wm_concat(childname),',',' ') from tableName group by parentname
      

  2.   

    1.一个表中的字段如下:id (主键) name.
    请问select count(*)和 select count(id)有什么区别?
    没区别 结果一样     要是id不为主键 可以为空 那么count(id)<count(*) ,count(id)不统计nullselect parentname,replace(wm_concat(childname),',',' ') from tb
      

  3.   

    1.count(*) 是统计行数 count(id)是统计id不为null的行数2.有蛮多方法 详见 合并字符串
      

  4.   

    谢谢,明白了,replace(wm_concat(childname),',',' ') 这个不明白,要将查询后的列名wm_concat(childname)替换成什么呢?replace(name,'','')平时这么做过,但看这个replace没看明白。看语法怎么会有三个,呢?
      

  5.   

    select parentname,replace(wm_concat(childname),',',' ') from tableName group by parentname
    查询时不需要再group by 了吧?
      

  6.   

    抱歉,我机器上暂时没有oracle 10g,所以没法试。只在MYSQL上试了试replace。
      

  7.   

    select parentname,replace(wm_concat(childname),',',' ') from tb group by parentname
    wm_concat(childname)的结果默认是以','分开 而你的是' '所以要替换