请教一个基础的问题。
数据库里table1格式如下姓名     籍贯
张三     北京
李四     上海
王五     天津
如何通过SQL语句实现下述功能要显示如下结果
姓名    籍贯
张三    1
其它    2

解决方案 »

  1.   

    CREATE TABLE TABLE1(USERNAME VARCHAR2(20),ADDRESS VARCHAR2(20));
    INSERT INTO TABLE1 VALUES('张三','北京');
    INSERT INTO TABLE1 VALUES('李四','上海');
    INSERT INTO TABLE1 VALUES('王五','天津');
    COMMIT;SELECT DECODE(USERNAME,'张三','张三','其它') "姓名",COUNT(ADDRESS) "籍贯" FROM TABLE1 GROUP BY DECODE(USERNAME,'张三','张三','其它');
      

  2.   

    用decode吧
    select decode (姓名,‘张三’,1,2)
      

  3.   

    顺序不对的话在结尾加上order by  "姓名" DESC;
      

  4.   

    这个题的我想意思应该是:
    输入一些姓名,求出在全国使用这些名称的人数,以及使用使用其他姓名的人数.
    所以:
    select USERNAME,a
    from(
    select USERNAME,count(USERNAME) a from TABLE1 where USERNAME in('张三','李四') group by USERNAME
    )
    union
    select '其他',(select count(USERNAME) from TABLE1)-(select count(USERNAME) a from TABLE1 where USERNAME in('张三','李四')) from dual只是性能非常低,这种问题我想放在客户端应该更好做