我试图在sqldeveloper(oracle)中使用简单的if查询,但是我遇到了“缺少右括号”错误。我想写所有的 ID 从我的table上 TEST_TABLE ,如果是,则写“是” ID 为1234,否则为“否”。我做错什么了?
ID
TEST_TABLE
select id, if(id = 1234, 'yes', 'no') from TEST_TABLE t
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
1条答案
按热度按时间xjreopfe1#
不能使用if(if用于plsql代码中的控制流,而不是查询),而是使用case when:
案件的基本形式是:
case必须执行一个或多个测试,每个测试返回一个值。如果没有大小写匹配(所有测试都是false)并且没有else子句,则返回null。
还有一种测试单个变量是否与不同值相等的形式: