使用if时缺少右括号

cdmah0mi  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(1049)

我试图在sqldeveloper(oracle)中使用简单的if查询,但是我遇到了“缺少右括号”错误。我想写所有的 ID 从我的table上 TEST_TABLE ,如果是,则写“是” ID 为1234,否则为“否”。我做错什么了?

select id, if(id = 1234, 'yes', 'no') from TEST_TABLE t
xjreopfe

xjreopfe1#

不能使用if(if用于plsql代码中的控制流,而不是查询),而是使用case when:

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

case必须执行一个或多个测试,每个测试返回一个值。如果没有大小写匹配(所有测试都是false)并且没有else子句,则返回null。
还有一种测试单个变量是否与不同值相等的形式:

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

相关问题