提问人:gwydion93 提问时间:12/16/2021 最后编辑:Erwin Brandstettergwydion93 更新时间:8/10/2023 访问量:8707
SELECT WHERE 列值在数组中
SELECT WHERE column values are in array
问:
假设我有一个名为“myTable”的表:
columnA| columnB| columnC
1 | Yellow| Apple
3 | Red | Grape
8 | Blue | Banana
6 | Green | Orange
上表是用于演示目的的实际表的简化。想象一下,实际表是 100K + 行。现在,我只想选择 columnB 在列表/数组中的行:ex - ['Red', 'Blue', 'Green']。我不确定在这里使用正确的语法。
SELECT * FROM myTable WHERE columnB IN Array['Red', 'Blue', 'Green']
实现此目的的正确语法是什么?
答:
3赞
sairfan
12/16/2021
#1
这是示例,我相信它适用于 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');
2赞
Erwin Brandstetter
12/16/2021
#2
在 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');
相关:
评论
SELECT * FROM myTable WHERE columnB IN ('Red', 'Blue', 'Green')
请参阅手册