谁能告诉我哪个命令用于将三列数据连接到 PostgreSQL 数据库中的一列?
例如
如果列是
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
谁能告诉我哪个命令用于将三列数据连接到 PostgreSQL 数据库中的一列?
例如
如果列是
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
只需使用连接运算符||
: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 |
如果要更改开始列本身,开始列必须首先是字符串类型,然后执行此操作: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
这是一个旧帖子,但我偶然发现了它。创建日期数据类型不是更有意义吗?你可以这样做:
select make_date(year, month, begin)
日期似乎比字符串更有用(您甚至可以随意格式化它to_char()
)。