sp; job_desc = "Designer"
GO
下面的查询在一个陈述式中使用 IN 关键词两次-一次针对子查询,另一次针对子查询中的值清单:
SELECT fname, lname --Outer query
FROM employee
WHERE job_id IN ( SELECT job_id --Inner query, or subquery
FROM jobs
WHERE job_desc IN ("Operations Manager",
"Marketing Manager",
"Designer"))
GO
子查询的结果集将先被找到-本例中,它是一个 job_id 值的集合。此子查询产生的 job_id 值的集合并不会传回到屏幕上,外层的查询将把它当作表达式一般运用在自己的 IN 搜寻条件。最后的结果集将包含所有职业头衔为 Operations Manager、Marketing Manager 或 Designer 的员工姓名。结果集如下:
fname lname
-------------------- ----------------------
Pedro Afonso
Lesley Brown
Palle Ibsen
Karin Josephs
Maria Larsson
Elizabeth Lincoln
Patricia McKenna
Roland Mendel
Helvetius Nagy
Miguel Paolino
Daniel Tonini