PostGre SQL запрашивает приведение типа, когда типы данных совпадают? - PullRequest
0 голосов
/ 24 ноября 2018

Итак, я пробовал этот запрос здесь:

    SELECT
     account.customer_client_code,
     account.client_account_number,
     account.first_name,
     account.last_name,
     debt_trans.trans_date,
     debt_trans.debt_id,
     debt_trans.debt_trans_id,
     debt_trans.receiver,
     debt_trans.type_name,
     debt_trans.client_id,
     debt_trans.amount

    FROM
     debt_trans 

    INNER JOIN
     account 

    ON
     account.client_id= debt_trans.client_id

      /* Both fields here are of int8 datatype */

    WHERE
     debt_trans.customer_id = 'CMC' 
     and
     account.customer_client_code like ('UBC2903','UBCO') 
     and 
     debt_trans.type_name='Credit Card'
     and
     debt_trans.operator = 'RECEIVED'

 /*All of these fields here are of varchar datatype */

Но я проверил и дважды проверил все типы данных, и не должно быть приведения типов.Я получаю следующее сообщение об ошибке:

"ОШИБКА: оператор не существует: изменение символа ~~ record Подсказка: ни один оператор не соответствует заданному имени и типу (ам) аргумента. Возможно, вам потребуетсядобавить явное приведение типов. Позиция: 492 "

Есть какие-нибудь подсказки, в чем проблема?

1 Ответ

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

Сообщение об ошибке относится к этой строке:

account.customer_client_code like ('UBC2903','UBCO')

Если вы пытаетесь определить, является ли account.customer_client_code одним из 'UBC2903' или 'UBCO', тогда вам следует использовать INоператор:

account.customer_client_code IN ('UBC2903','UBCO')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...