Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择缺少表达式或缺少关键字的情况_Sql_Oracle - Fatal编程技术网

Sql 选择缺少表达式或缺少关键字的情况

Sql 选择缺少表达式或缺少关键字的情况,sql,oracle,Sql,Oracle,我试图在Oracle SQL developer中使用CASE表达式和SELECT,无论我尝试做什么,都会出错。下面的语句使我得到了缺少的表达式。我已经检查过了,我想所有需要的关键字都在那里。我试着用多种方式修改代码,唯一发生的事情就是有时 “缺少关键字错误” 试试这个答案 SELECT CASE WHEN PARENT_ID IS NULL THEN 'NOPROB' ELSE 'PROB' EN

我试图在Oracle SQL developer中使用
CASE
表达式和
SELECT
,无论我尝试做什么,都会出错。下面的语句使我得到了缺少的表达式。我已经检查过了,我想所有需要的关键字都在那里。我试着用多种方式修改代码,唯一发生的事情就是有时

“缺少关键字错误”

试试这个答案

SELECT 
      CASE WHEN PARENT_ID IS NULL THEN 'NOPROB'
                                    ELSE 'PROB'
      END AS PROBLEMS
FROM A

为表名指定别名时,使用双引号而不是单引号

SELECT 
     CASE WHEN A.PARENT_ID IS NULL THEN 'NOPROB'
                                   ELSE 'PROB'
     END AS "PROBLEMS"
FROM A

表名是A吗?请删除问题周围的撇号或用引号替换。不,我更改了它,因为它是以一个人的名字命名的!单引号用于字符串文本。对分隔标识符使用双引号。“缺少关键字错误”不是Oracle错误消息。可能您得到了ORA-00923:FROM关键字未在预期的位置找到。
选择
列表项不需要括在括号中。谢谢,我尝试了这个,但没有帮助。。。ORA-00904:无效标识符-00904。00000-“%s:无效标识符”那么,表
a
中是否有
PARENT\u ID
列?我们只知道你告诉我们什么(现在证明它不是完全正确的)。只有当你想要使用的标识符是保留字或其他非标准的时候。由于使用保留字或非标准标识符名称通常不是一个好主意,因此通常最好避免双引号。
SELECT 
     CASE WHEN A.PARENT_ID IS NULL THEN 'NOPROB'
                                   ELSE 'PROB'
     END AS "PROBLEMS"
FROM A