如何把“<”这种情况何时表达?

时间:2013-10-20 01:21:46

标签: postgresql

在PostgreSQL中,这是一个有效的查询:

SELECT case 2+2 when 1 then 2 else 3 end

如果我放置一个复杂的子查询而不是'2 + 2',它仍然可以正常工作。但是,如果我想知道结果是更小而不是特定数字,我该如何更改此查询呢?

例如,这个不起作用:

SELECT case 2+2 when > 1 then 2 else 3 end

2 个答案:

答案 0 :(得分:2)

SQL中有两种形式的CASE语句,described in the PostgreSQL manual here

您正在使用的一个,将特定表达式与一系列值进行比较,例如C或PHP中的switch语句:

CASE something WHEN 1 THEN 'hello' ELSE 'goodbye' END

另一个是更一般的分支条件集,如if-elseif-else序列或PHP的switch(true)。以上也可以这样写:

CASE WHEN something = 1 THEN 'hello' ELSE 'goodbye' END

因此,要使用=以外的任何比较,您需要“if-like”版本。在您的示例中:

SELECT CASE WHEN 2+2 > 1 THEN 2 ELSE 3 END

答案 1 :(得分:0)

select case when 2+2 > 1 then this else that end