【问题标题】:BETWEEN/IN errors in PostgreSQL [duplicate]PostgreSQL中的BETWEEN/IN错误[重复]
【发布时间】:2018-03-10 00:26:33
【问题描述】:

我在理解为什么 PostgreSQL 给我 SQL 错误时遇到了一些麻烦:

ERROR:  operator does not exist: character varying = integer
LINE 4: WHERE public.prospect.rating IN (1,2);
                                 ^
HINT:  No operator matches the given name and argument type(s). You 
might need to add explicit type casts.
SQL state: 42883
Character: 279

这是我正在使用的代码行:

SELECT public.people.organization, public.people.firstname, 
public.people.lastname, 
public.people.linkedinurl, public.people.orgcrunchbaseurl
FROM public.prospect LEFT JOIN public.people ON 
public.prospect.organization = public.people.organization
WHERE public.prospect.rating BETWEEN 1 and 2;

我遇到的问题在最后一行。我也试过:

WHERE public.prospect.rating IN (1,2);

我正在尝试将搜索范围缩小到只有 1 或 2 评级的项目。

提前感谢您的帮助!

【问题讨论】:

    标签: sql database postgresql operators


    【解决方案1】:

    使用表别名时会发生什么?

    SELECT p.organization, p.firstname, p.lastname, p.linkedinurl, p.orgcrunchbaseurl
    FROM public.prospect pr LEFT JOIN
         public.people p
         ON pr.organization = p.organization
    WHERE pr.rating BETWEEN 1 and 2;
    

    【讨论】:

    • 我发现了问题!当我最初设置表时,我将所有列的数据类型设置为 VARCHAR 并且完全忘记了这些布尔运算符仅适用于数字。我更改了数据类型,原始代码有效!
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多