CAST Пустой псевдоним для целого числа из объединения 2 SQL в PostgreSQL - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть SQL, который работает нормально в MySQL.Но так как меня попросили изменить базу данных на PostgreSQL, SQL не может работать нормально.Это потому что тип данных.Давайте рассмотрим пример:

SELECT A, B, C FROM tbl_first
  UNION ALL
SELECT D, ' ', F FROM tbl_second

Допустим, столбец B имеет тип данных Integer.Когда я запускаю PostgreSQL, в уведомлении говорится "invalid input syntax for integer: LINE 3: ' ',".Может быть, мое предположение верно, это связано с определением столбца ' '.

Я всегда использую метод CAST(COLUMN AS INTEGER), чтобы привести столбец с типом строки или символьного типа к Integer.Но в моем случае это всегда выдает ошибку.

Как лучше всего это решить?Спасибо-х.

1 Ответ

0 голосов
/ 22 ноября 2018

Необходимо преобразовать столбец B в текст:

SELECT A, B::text, C FROM tbl_first
UNION ALL
SELECT D, ' ', F FROM tbl_second

В запросе объединения все столбцы в одной позиции обычно должны иметь одинаковый тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...