继续收到此消息:*第1行的错误:ORA-00923:FROM关键字未找到时

时间:2013-04-07 18:49:29

标签: sql oracle ora-00923

我输入了这个:

SELECT COST TO_CHAR(COALESCE (COST, 0), '$99,990.99') 
  FROM COURSE;
SELECT COST TO_CHAR(NVL(cost, 0), '$99,990.99') COST
  FROM COURSE;

然后我收到这条消息:

SELECT COST TO_CHAR(COALESCE (COST, 0), '$99,990.99')
                   *
ERROR at line 1: 
ORA-00923: FROM keyword not found where expected 
SELECT  COST TO_CHAR(NVL(cost, 0), '$99,990.99') COST
                    *
ERROR at line 1: 
ORA-00923: FROM keyword not found where expected 

我试图以特定的格式获得课程的费用:

COST
-------------
 $0.00
 $1,000.00

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

查询应该是这样的:

SELECT  TO_CHAR(COALESCE (COST, 0), '$99,990.99') FROM COURSE;
SELECT  TO_CHAR(NVL(cost, 0), '$99,990.99')  FROM COURSE;

SELECT语句中有太多COST个关键字。

如果您希望在格式化时保留COST列,请添加以下逗号:

SELECT COST, TO_CHAR(COALESCE (COST, 0), '$99,990.99') COST_FORMATTED FROM COURSE;
SELECT COST, TO_CHAR(NVL(cost, 0), '$99,990.99') COST_FORMATTED FROM COURSE;

答案 1 :(得分:1)

您在第一个COST之后缺少逗号:

SELECT COST, TO_CHAR(COALESCE (COST, 0), '$99,990.99') FROM COURSE; 
SELECT COST, TO_CHAR(NVL(cost, 0), '$99,990.99') FROM COURSE;

如果选择开头费用,则将第二列命名为COST是没有意义的。