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