我知道WHERE ... IN ...
子句允许选择给定数组中存在的字段的所有值。如何将这个想法扩展到一组领域?类似的东西:
SELECT * FROM table_name
WHERE (First, Last) IN ((Adam, Scott), (Betty, Johnson), (Cathy, Wyatt))
或允许相同结果的任何其他方法。
答案 0 :(得分:2)
问题中的语法在其他一些RDBMS中有效,但在SQL Server中无效。如果在2008年以上,您可以使用
SELECT *
FROM table_name t
WHERE EXISTS(SELECT *
FROM (VALUES ('Adam', 'Scott'),
('Betty','Johnson'),
('Cathy','Wyatt')
) v(first, last)
WHERE t.first = v.first AND t.last = f.last
答案 1 :(得分:1)
这取决于你真正的追求。如果你只想组合2个字段,那么你可以使用这样的东西:
SELECT * FROM table_name
WHERE First+','+Last IN ('Adam, Scott', 'Betty, Johnson', 'Cathy, Wyatt')
答案 2 :(得分:-2)
SELECT * FROM Table_name 第一个IN('Adam','Betty','Cathy') AND Last IN('Scott','Johnson','Wyatt')