我有这样的数据库,我想通过签入gender列来覆盖该字段,并在emp_name字段中覆盖。

emp_id | emp_name | gender
-------+----------+--------
   501 | aaa      | M
   502 | bbb      | F
   503 | ccc      | F
   504 | ddd      | M
   505 | eee      | F

我想要这样的输出
emp_id | emp_name | gender
-------+----------+--------
   501 | Mr.aaa   | M
   502 | Ms.bbb   | F
   503 | Ms.ccc   | F
   504 | Mr.ddd   | M
   505 | Ms.eee   | F

我试过这样的选择查询
$select overlay(emp_name placing 'Mr.' from 1 for 0 )  from emp where gender = 'M' ;

我得到的输出,
 overlay
---------
 Mr. aaa
 Mr. ddd
(2 rows)

但是,我没有得到预期的结果。有没有办法得到预期的结果。
提前谢谢

最佳答案

$select overlay(emp_name placing CASE gender WHEN 'M' THEN 'Mr. ' ELSE 'Ms. ' END from 1 for 0 )  from emp;

不是postgresql的人,但这应该管用。

关于sql - 如何在PostgreSQL中以不同的方式使用overlay()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22863467/

10-13 03:44