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

本文记录了一个关于Oracle SQL中单双引号使用的常见错误。通过对比不同写法的查询语句,解释了为何在AS关键字后必须使用双引号而非单引号,并提供了正确的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值