假设我有一个名为“myTable”的表:
columnA| columnB| columnC
1 | Yellow| Apple
3 | Red | Grape
8 | Blue | Banana
6 | Green | Orange
上表是出于演示目的对实际表的简化。想象一下实际表有 100K + 行。现在,我只想选择列表/数组中 columnB 所在的行:例如 - ['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');
或者简单的文字(注意文本是否位于下、上或正确的底部)。
SELECT * FROM design WHERE Color IN ('Red', 'Green', 'Blue');
在 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');
相关: