PSQL - неверный синтаксис ввода для типа с двойной точностью: «ноль»; - PullRequest
0 голосов
/ 01 июня 2018

Я пишу запрос для извлечения некоторых данных и использую этот недопустимый синтаксис ввода для типа с двойной точностью: «нулевая» ошибка, и я не совсем уверен в значении этого и / или не нашел решения.Столбец, в котором я запускаю статистику дел, содержит нулевые значения или имеет соответствующее значение, которое мне нужно.

идентификатор учетной записи col может содержать строки или имеет нулевые значения

Iпробовал:

case
    when length(account_id) > 1
      then account_id
    else
      'null'
    end as account_id,

и

case
    when account_id is not null
      then account_id
    else
      'null'
    end as account_id,

оба результата в результате недопустимой операции: неверный синтаксис ввода для типа двойной точности: "ноль";

когда я простопоместите это в столбец и используйте длину (account_id), он покажет длину или просто отобразит ноль - почему это не сработает в выражении case?

Спасибо!

1 Ответ

0 голосов
/ 01 июня 2018

'null' - это строка.null есть.,,хорошо null.Ваш account_id имеет тип double precision.Это странный выбор для account_id, но неподходящие типы данных не имеют значения.Что важно, так это то, что выражение case хочет, чтобы все было одного типа, причем числа имеют приоритет.

Возможно, вы захотите одну из следующих двух вещей:

(case when length(account_id) > 1 then account_id end) as account_id,

По умолчаниюnull, когда нет else.Вы можете добавить else null, но это излишне.

Или:

(case when length(account_id) > 1 then account_id::varchar(255) else 'null' end) as account_id,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...