我有2个字段的表学生搜索:编写SQL与多个条件
Name: nvarchar(256)
Age: int
用户将使用一个WinForm应用程序输入名称和用于搜索时代。
- 如果输入的名称为空,sql将不会查询名称字段。
- 如果输入的Age是0,sql将不会查询Age字段。
- 如果名称为空且输入名称为空 - >记录匹配。如果名称为空且输入的名称不为空 - >记录不匹配。 Age字段也类似。
我的问题是,如何写这样的SQL。
P/S:我使用SQL Server 2005.
请帮帮我。谢谢。
该查询不应强制启动表扫描。还要注意''和0与NULL不相同。 – TomTom 2010-05-05 04:15:28
@TomTom:从理论上讲,第一个查询不一定会导致表扫描,但实际上它可以处理99.9%的情况,因为查询分析器会在查询中看到很多值列。通常这些价值栏不适合指数。 – Codism 2012-11-14 17:21:30