Published 2022-06-03

Postgresql - Where

使用WHERE过滤SELECT返回行。

语法

SELECT select_list
FROM table_name
WHERE condition
ORDER BY sort_expression

hwVyI1

如果在语句中使用了列别名,就不能使用WHERE

Operator Description
= 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
<> or != 不等于
AND 逻辑与
OR 逻辑或
IN 包含
BETWEEN 区间
LIKE 相似匹配
IS NULL 非空
NOT 不是

示例

从示例数据库中查询

WP3KZa

=

查询first_name等于Jamie

SELECT
    last_name,
    first_name
FROM
    customer
WHERE
    first_name = 'Jamie';

R0olOG

AND

查询first_name等于Jamielast_name等于Rice

SELECT
    last_name,
    first_name
FROM
    customer
WHERE
    first_name = 'Jamie' AND
        last_name = 'Rice';

zgi3wB

OR

查询last_name等于Rodriguezfirst_name等于Adam

SELECT
    first_name,
    last_name
FROM
    customer
WHERE
    last_name = 'Rodriguez' OR
    first_name = 'Adam';

HIJZqa

IN

查询包含Ann、Anne、Annie任何一个

SELECT
    first_name,
    last_name
FROM
    customer
WHERE
    first_name IN ('Ann','Anne','Annie');

6U4GWf

LIKE

查询以Ann开头的last_name

SELECT
    first_name,
    last_name
FROM
    customer
WHERE
    first_name LIKE 'Ann%'

5d0iNu

BETWEEN

查询first_name的长度大于等于 3 小于等于 5

SELECT
    first_name,
    LENGTH(first_name) name_length
FROM
    customer
WHERE
    first_name LIKE 'A%' AND
    LENGTH(first_name) BETWEEN 3 AND 5
ORDER BY
    name_length;

uvebvg

<>

查询first_nameBra开头,而且last_name不等于Motley

SELECT
    first_name,
    last_name
FROM
    customer
WHERE
    first_name LIKE 'Bra%' AND
    last_name <> 'Motley';

1c5pql

<>!=是相同的作用。