select t.store_name,case t.store_name
         when ‘LosAngeles’ then sales*2
         else sales
         end
         "NewSales",
         gdate
         from store_information t
store_name在数据库中式varchar2型数据,但是在执行以上sql文的时候在‘LosAngeles’位置一直报错,varchar2类型的数据不是用‘’来引用吗?

解决方案 »

  1.   

    提示  ora-12704 错误
      

  2.   


    select t.store_name,
    decode(t.store_name,'LosAngeles',sales*2,sales) NewSales,
             gdate
             from store_information t;
      

  3.   


    仔细观察哦:     ‘’  中文字符
                      ''   英文字符就好像  http://www.baidu.com  与 http://www.baidu.com第一个可以,第二个不可以.
      

  4.   

    很明显 俩单引号是中文输入法  sql语句不能识别  改成英文的就可以了
      

  5.   

    ‘LosAngeles’ 用了全角单引号吧。你的别名也弄错了,不要用双引号select t.store_name,case t.store_name
             when 'LosAngeles' then sales*2
             else sales
             end
             NewSales,
             gdate
             from store_information t
      

  6.   

    写了双引号后面很不好调用,如果是在一个视图里面封装这个别名,在外面调用视图还必须带上双引号与之前写得一摸一样,否则找不到这个列,如:create   view v_test as
    select id,usrnam as "UsrNames" from usrs ;调用
     select id,  "UsrNames"  from v_test; 只有这种是对的;
     select id,UsrNames from v_test;这种错误;
     select id,USRNAMES from v_test;这种也错误