Объединение трех столбцов в один столбец в Postgres

Вопрос:Может ли кто-нибудь сказать мне, какая команда используется для конкатенации трех столбцов данных в один столбец в базе данных 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 Ответ №1

Просто используйте оператор конкатенации ||: 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 p >

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

Вывод:

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

UPDATE

Об этом:

but m not getting null value column date

Используйте это:

select (begin || ‘-‘ || month || ‘-‘ || year)::date as begin from t Ответ №2

Посмотрите 9.4. Строковые функции и операторы

Ответ №3

Это старый пост, но я просто наткнулся на него. Разве не имеет смысла создавать тип данных даты? Вы можете сделать это, используя:

select make_date(year, month, begin)

Дата кажется более полезной, чем строка (и вы даже можете отформатировать ее, как вам нравится, используя to_char()).

Оцените статью
Добавить комментарий