Postgresql:添加到 CASE
Postgresql: add to CASE
我在 Postgresql 中有这段代码:
CASE
WHEN a > b THEN 'a is bigger than b'
WHEN a > c THEN 'a is bigger than c'
ELSE ' '
END AS "all bigs",
现在的问题是我需要添加两个 WHEN 的组合,这样第二个 WHEN 就可以了
不删除第一个。
我的专栏应该看起来像 (a is bigger than b\na is bigger than c
):
all bigs
---------
a is bigger than a
a is bigger than c
不喜欢:
all bigs
---------
a is bigger than c
如何操作?
@zedfoxus,尝试这个,但没有成功 ("ERROR: syntax error at or near "UNION""):
CASE
WHEN a > b THEN 'a is bigger than b'::text
UNION ALL
WHEN a > c THEN 'a is bigger than c'::text
END AS "all bigs"
试试这个:
create table test (a int, b int, c int);
insert into test values (3, 2, 1);
select case when a > b then 'a is bigger than b' else '' end as "all bigs" from test
union all
select case when a > c then 'a is bigger than c' else '' end as "all bigs" from test
我在 Postgresql 中有这段代码:
CASE
WHEN a > b THEN 'a is bigger than b'
WHEN a > c THEN 'a is bigger than c'
ELSE ' '
END AS "all bigs",
现在的问题是我需要添加两个 WHEN 的组合,这样第二个 WHEN 就可以了 不删除第一个。
我的专栏应该看起来像 (a is bigger than b\na is bigger than c
):
all bigs
---------
a is bigger than a
a is bigger than c
不喜欢:
all bigs
---------
a is bigger than c
如何操作?
@zedfoxus,尝试这个,但没有成功 ("ERROR: syntax error at or near "UNION""):
CASE
WHEN a > b THEN 'a is bigger than b'::text
UNION ALL
WHEN a > c THEN 'a is bigger than c'::text
END AS "all bigs"
试试这个:
create table test (a int, b int, c int);
insert into test values (3, 2, 1);
select case when a > b then 'a is bigger than b' else '' end as "all bigs" from test
union all
select case when a > c then 'a is bigger than c' else '' end as "all bigs" from test