大家好,我是oracle的新手,刚写个语句但一直提醒错误,请大家帮忙看看SELECT CUS_ID,
  DECODE(CUS_NAME, SUBSTR(CUS_NAME, 1, 3) = 'MRS', 'girl', 'man') ANAME
  FROM XL_TARGET;
一直提醒ora00907丢失右括号错误

解决方案 »

  1.   

    ---条件有问题SUBSTR(CUS_NAME, 1, 3) 与'MRS'分开
    SELECT CUS_ID,
      DECODE(CUS_NAME, SUBSTR(CUS_NAME, 1, 3) , 'MRS', 'girl', 'man') ANAME
      FROM XL_TARGET;
      

  2.   

    SELECT CUS_ID,
      DECODE(CUS_NAME, SUBSTR(CUS_NAME, 1, 3) , 'MRS', 'girl', 'man') ANAME
      FROM XL_TARGET;
      

  3.   


    那如果我想根据别的字段的值来判断这个字段的值该怎么写,
    我这样写有问题DECODE(cus_name,cus_id,'1001', 'man','girl'),该怎么写'1001' 是cus_id
      

  4.   

    该函数用法:DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
    没看明白你想实现什么意思~~ 
      

  5.   

    你现在用的是decode(value,if1,then1,if2,then2,else)
    看楼主的意思是 
    if ... then ...
    elsif ... then ...可以使用oracle的case 表达式select  (case when substr(dname,1,3) ='MRS' then 'girl' 
                       else 'man' 
                       end )as d from dept;
    或者select  (case substr(dname,1,3) when  'MRS' then 'girl' 
                       else 'man' 
                       end )as d from dept;
      

  6.   

    应该SELECT CUS_ID,
      DECODE(SUBSTR(CUS_NAME, 1, 3) ,'MRS', 'girl', 'man') ANAME
      FROM XL_TARGET;
    这样吧。