如何显示第一行,具体取决于值

时间:2012-10-31 02:18:01

标签: sql sql-server sql-server-2005

我应该构建一个查询,显示产品是否第一次通过质量测试。例如,如果产品#1234未通过第一次测试,则不显示该值。我正在运行SQL Server 2005.我在想可能使用COALESCE语句,或者在语句的情况下,任何帮助将不胜感激。这是一些示例数据:

product#  test result   datetime
1102494    Fail         20111129:07:57:50.203
1102494    pass         20111130:16:48:28.140
1102496    pass         20111129:11:09:32.140
1102498    pass         20111129:08:21:10.218

2 个答案:

答案 0 :(得分:3)

仅显示第一个结果,并且仅在第一个结果是“通过”时显示。

select *
  from (
select *, rn=row_number() over (partition by [product#] order by [datetime] desc)
  from tests
     ) x
 where rn=1 and result = 'pass';

答案 1 :(得分:2)

你不能选择test_result ='pass'的位置吗?也许我误解了你的问题