SELECT WHERE 列值在数组中
SELECT WHERE column values are in array
假设我有一个名为 'myTable' 的 table:
columnA| columnB| columnC
1 | Yellow| Apple
3 | Red | Grape
8 | Blue | Banana
6 | Green | Orange
上面的 table 是为了演示目的对实际 table 的简化。想象一下实际 table 是 100K + 行。现在,我只想 select columnB 在 list/array 中的行:ex - ['Red'、'Blue'、'Green']。我不确定此处使用的语法是否正确。
SELECT * FROM myTable WHERE columnB IN Array['Red', 'Blue', 'Green']
实现此目的的正确语法是什么?
这是示例,我相信它适用于 MS SQL
SELECT p.FirstName, p.LastName, e.JobTitle
FROM Person.Person AS p
JOIN HumanResources.Employee AS e
ON p.BusinessEntityID = e.BusinessEntityID
WHERE e.JobTitle IN ('Design Engineer', 'Tool Designer', 'Marketing Assistant');
在 Postgres 中,您也可以使用数组 = ANY ()
:
SELECT * FROM myTable WHERE columnB = ANY (ARRAY['Red', 'Blue', 'Green']);
或者用文字数组常量作为输入:
SELECT * FROM myTable WHERE columnB = ANY ('{Red, Blue, Green}'::text[]);
相当于:
SELECT * FROM myTable WHERE columnB IN ('Red', 'Blue', 'Green');
相关:
- IN vs ANY operator in PostgreSQL
假设我有一个名为 'myTable' 的 table:
columnA| columnB| columnC
1 | Yellow| Apple
3 | Red | Grape
8 | Blue | Banana
6 | Green | Orange
上面的 table 是为了演示目的对实际 table 的简化。想象一下实际 table 是 100K + 行。现在,我只想 select columnB 在 list/array 中的行:ex - ['Red'、'Blue'、'Green']。我不确定此处使用的语法是否正确。
SELECT * FROM myTable WHERE columnB IN Array['Red', 'Blue', 'Green']
实现此目的的正确语法是什么?
这是示例,我相信它适用于 MS SQL
SELECT p.FirstName, p.LastName, e.JobTitle
FROM Person.Person AS p
JOIN HumanResources.Employee AS e
ON p.BusinessEntityID = e.BusinessEntityID
WHERE e.JobTitle IN ('Design Engineer', 'Tool Designer', 'Marketing Assistant');
在 Postgres 中,您也可以使用数组 = ANY ()
:
SELECT * FROM myTable WHERE columnB = ANY (ARRAY['Red', 'Blue', 'Green']);
或者用文字数组常量作为输入:
SELECT * FROM myTable WHERE columnB = ANY ('{Red, Blue, Green}'::text[]);
相当于:
SELECT * FROM myTable WHERE columnB IN ('Red', 'Blue', 'Green');
相关:
- IN vs ANY operator in PostgreSQL