SQL Server:是否可以将where子句限制为预先声明的列表中的特定值

时间:2016-08-01 06:17:12

标签: sql sql-server-2014

我需要针对采购发票表运行简单查询,以对供应商发票子集的值求和。通常,这将是以下伪查询的简单情况;

Select Sum(invoiceTotal) 
From PurchaseInvoices
Where ContactId = x

我遇到的问题是,我所关注的特定供应商是随机分布在联系人表格中的,所以我不能简单地修改where子句来说明Between x and y。在我不想要的记录中。

如果为了论证的缘故,我需要总结联系人a,b,c,g,j,k,s和u的值,有没有办法在SQL开头定义联系人列表查询,然后简单地将where子句限制在该列表中的ContactId

由于

1 个答案:

答案 0 :(得分:2)

您可以使用IN子句提供返回列表的列表或子查询。

Select Sum(invoiceTotal) From PurchaseInvoices
Where ContactId in (x, y, z) 

语法

test_expression [ NOT ] IN   
( subquery | expression [ ,...n ]  
)