ORA-00923: FROM keyword not found where expected(单双引号)

来源:互联网 发布:淘宝上买狗狗怎么快递 编辑:程序博客网 时间:2024/04/30 13:54

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

直接不加是最好的方法,不会错。只是记录一下上面问题,方便以后翻阅。。。。。

阅读全文
0 0