将三列数据连接到Postgres中的一列

时间:2012-07-13 04:29:07

标签: sql postgresql

有谁能告诉我哪个命令用于将三列数据连接到PostgreSQL数据库中的一列?

e.g。

如果列是

begin | Month | Year
   12 |     1 | 1988
   13 |     3 | 1900
   14 |     4 | 2000
   15 |     5 | 2012

结果如

Begin
12-1-1988 
13-3-1900
14-4-2000
15-5-2012

3 个答案:

答案 0 :(得分:9)

只需使用连接运算符||http://www.sqlfiddle.com/#!1/d66bb/2

select begin || '-' || month || '-' || year as begin 
from t;

输出:

|     BEGIN |
-------------
| 12-1-1988 |
| 13-3-1900 |
| 14-4-2000 |
| 15-5-2012 |

如果要更改begin列本身,begin column必须先是字符串类型,然后执行以下操作:http://www.sqlfiddle.com/#!1/13210/2

update t set begin = begin || '-' || month || '-' || year ;

输出:

|     BEGIN |
-------------
| 12-1-1988 |
| 13-3-1900 |
| 14-4-2000 |
| 15-5-2012 |

<强>更新

关于这个:

but m not getting null value column date

使用此:

select (begin || '-' || month || '-' || year)::date as begin 
from t

答案 1 :(得分:2)

答案 2 :(得分:0)

这是一篇很老的帖子,但我偶然发现了它。创建日期数据类型没有意义吗?您可以使用以下方式执行此操作:

ServletContext servletContext =request.getSession().getServletContext().getContext("contextPath")
servletContext.getAttribute("user"); 

日期似乎比字符串更有用(你甚至可以使用select make_date(year, month, begin) 来格式化它。)