第一:我正在运行postgresql 8.2并在pgAdmin上测试我的查询.
我有一张桌子上有一些字段,说:
mytable(
id integer,
mycheck boolean,
someText varchar(200));
Run Code Online (Sandbox Code Playgroud)
现在,我想要一个类似于此的查询:
select id,
case when mycheck then (select name from tableA)
else (select name from tableB) end as mySpecialName,
someText;
Run Code Online (Sandbox Code Playgroud)
我试着跑,得到这个:
ERROR: CASE types character varying and boolean cannot be matched
SQL state: 42804
Run Code Online (Sandbox Code Playgroud)
甚至试图愚弄postgresql
case (mycheck::integer) when 0 then
Run Code Online (Sandbox Code Playgroud)
没用.
所以,我的问题是:因为sql没有if,只有大小写,我想如何用布尔字段做一个if?