1、前言
今天学习oracle遇到一个错误,是一个关于单双引号的小问题,以前从来没在意过,记录在这里。备忘2、具体问题
表结构语句是这样:
create table demo(id int,name varchar(20),nums int); ---- 创建表
我的查询语句如下:
select sum(decode(name,'苹果',nums,0)) as '苹果',
sum(decode(name,'橘子',nums,0)) as '橘子',
sum(decode(name,'葡萄',nums,0)) as '葡萄',
sum(decode(name,'芒果',nums,0)) as '芒果' from demo d
由于以前没注意过,但是上面的这段代码一执行就报错:ORA-00923: FROM keyword not found where expected,为什么呢?请看下面改过的代码
select sum(decode(name,'苹果',nums,0)) as "苹果",
sum(decode(name,'橘子',nums,0)) as "橘子",
sum(decode(name,'葡萄',nums,0)) as "葡萄",
sum(decode(name,'芒果',nums,0)) as "芒果" from demo d
可以发现其实就是as后面的单双引号问题,改成双引号语句就正常执行了。也许在怀疑是不是中文的问题,于是再看下面的代码:
select sum(decode(name,'苹果',nums,0)) as 'A',
sum(decode(name,'橘子',nums,0)) as 'B',
sum(decode(name,'葡萄',nums,0)) as 'C',
sum(decode(name,'芒果',nums,0)) as 'D' from demo d
可是还是出错的额,不知道是我的语句导致这个不能单引号还是其他的,反正要加引号就加双引号吧,要不就像下面那样就得了::
select sum(decode(name,'苹果',nums,0)) as 苹果,
sum(decode(name,'橘子',nums,0)) as 橘子,
sum(decode(name,'葡萄',nums,0)) as 葡萄,
sum(decode(name,'芒果',nums,0)) as 芒果 from demo d
直接不加是最好的方法,不会错。只是记录一下上面问题,方便以后翻阅。。。。。