补充:用的是vc++ 和 oracle 谢谢!

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5053/5053989.xml?temp=1.978701E-02
      

  2.   

    select count(*) from (select distinct id from aaa)
      

  3.   

    回Eric_1999(╙@^@╜) :function 也返回不到啊 这个num根本就找不到 是不是这么写sql不行啊?
    回doer_ljy:我想要的是相异值的个数 这个值怎么才能得到?
    谢谢!
      

  4.   

    相异值的个数,给我具体的解释或者看看oracle的分析函数
    rank() 或者 row_number()
      

  5.   

    select count(*) from ( select distinct 字段 from table )
      

  6.   

    select count(*) from (select distinct id from aaa)
    1、子查询
    select distinct id from aaa
    选出的是aaa表的字段id不同的值(相同的被合并成一行)。
    2、外层查询用统计函数count来计算子查询的条数。这个条数就是“字段id有多少个不同的值”的那个值。如:
    id  
    1
    1
    1
    2
    1
    3
    1
    5
    则这个SQL的返回结果是4。
    不知道是不是你要的?
      

  7.   

    没错 我想得到的就是这个4
    可是怎么返回这个sql的结果
    我现在是strsql.Format("select distinct clusterid from aaa");
    然后记录集指针指向它
    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
    然后num=m_pRecordset->GetRecordCount();
    但num返回-1
      

  8.   

    没看到完整的程序,num=-1说明检索没有成功。
    应该不是SQL的问题了吧?
      

  9.   

    楼主的SQL语句是没有错误的,只是不知道在C++中如何得到num的值而已,楼上很多兄弟都理解错了吧,都在重写楼主的SQL语句。
    我不会C++,无法告诉你。
    请楼下的兄弟在继续解决吧。