Sql 使用if时缺少右括号

Sql 使用if时缺少右括号,sql,oracle,case,Sql,Oracle,Case,我试图在SQLDeveloper(Oracle)中使用简单的IF查询,但遇到了“缺少右括号”错误。我想从我的表测试表中写入所有ID,如果ID为1234,则写入yes,否则为no。我做错了什么 select id, if(id = 1234, 'yes', 'no') from TEST_TABLE t 无法使用IF(IF用于PLSQL代码中的控制流,而不是查询),而是在以下情况下使用CASE: select id, CASE WHEN id = 1234 THEN 'yes' ELSE 'no

我试图在SQLDeveloper(Oracle)中使用简单的IF查询,但遇到了“缺少右括号”错误。我想从我的表
测试表
中写入所有
ID
,如果
ID
为1234,则写入yes,否则为no。我做错了什么

select id, if(id = 1234, 'yes', 'no') from TEST_TABLE t
无法使用IF(IF用于PLSQL代码中的控制流,而不是查询),而是在以下情况下使用CASE:

select id, CASE WHEN id = 1234 THEN 'yes' ELSE 'no' END as idIs1234 from TEST_TABLE t
案例的基本形式为:

CASE 
  WHEN test THEN truevalue 
 [WHEN othertest THEN othertruevalue] 
 [ELSE falsevalue ]
END
案例必须执行一个或多个测试,每个测试返回一个值。如果没有大小写匹配(所有测试都为false),并且没有ELSE子句,则返回null

还有一种形式可以测试单个变量是否与各种值相等:

CASE id WHEN 1234 THEN 'yes1' WHEN 2345 THEN 'yes2' ELSE 'no' END 

谢谢,它很有效。我什么时候可以使用IF?它与CASE-When有什么区别?简单地说,“在存储过程中只能使用IF来选择要执行的代码语句集”