表 table , 字段A 值: 9-2-8-4-2-6 
请问怎么用一条SQL语句实现 字段A里有几个不重复的数字, (既9-2-8-4-2-6的数字个数是5个, 排除重复的)

解决方案 »

  1.   

    select count(distinct(a)) from table;
      

  2.   

     先用GROUP BY 以字段“A”做分组,再统计结果集的数量
    select count(*) from (select count(A) from table  group by A)
      

  3.   

    不清楚LZ的9-2-8-4-2-6是一列值还是一个值...如果是一列值...用一句SQL就太简单了...
    如果是一个值...用一句SQL就太难了...
      

  4.   

    一列可以,一个字段,只能先分割开,然后再做一个sql肯定不行。
      

  5.   

    SELECT  count(distinct REGEXP_SUBSTR('9-2-8-4-2-6' , '[^-]+',1,level))   FROM dual
    connect by level<= length('9-2-8-4-2-6')-length(replace('9-2-8-4-2-6','-'))+1试试看
      

  6.   

    -- FYI 下帖问题14:把 逗号 换成 "-"
    http://topic.csdn.net/u/20081002/00/f8d90ba2-e2bb-412a-a0c5-1b6d518fc22a.html
      

  7.   

    select count(distinct x.temp)
      from (select substr(a.a, b.rn, 1) as temp, b.rn, a.a
              from (select replace('9-2-8-4-2-6', '-') as a from dual) a,
                   (select rownum as rn
                      from dual
                    connect by level <= length(replace('9-2-8-4-2-6', '-', ''))) b) x
     order by rn