表:create table test(name varchar2(20), score number);
数据:张三 88
      张三 70
      李四 79
select decode(name,'张三',score,0) from test;出来的结果全是0,为什么?

解决方案 »

  1.   

    是否是你原来test数据中“张三”存在空格什么的,仔细检查下,
      

  2.   

    有可能‘张三’里面加了空格,我刚刚测了一下,好用的你这样写试试:
    select a.*,decode(name,trim' 张三 ',score,0) from test a;
      

  3.   


    少加一个括号、、、、改::
    select a.*,decode(name,trim(' 张三 '),score,0) from test a;
      

  4.   

    不一定就是空格,也许楼主多加了一个tab呢?
    简单的检查一下字段内容吧,如果还是有问题,便于排错,就把中文先替换成英文试试
      

  5.   


    create table test(name varchar2(20), score number);
    insert into test values('张三',88);
    insert into test values('王五',70);
    insert into test values('李四',70);select decode(name,'张三',score,0) from test;我测试可以啊。 可能是因为你'张三' 里有空格吧。
      

  6.   

    只能说你写的SQL是正确的,用法没有问题。