如何在我的查询中获取不等于1的记录

时间:2011-06-28 17:15:30

标签: sql-server

如何检查sql查询中的重复记录。

2 个答案:

答案 0 :(得分:2)

总会有一个row_number(),它是1,对吧?

我认为您需要嵌套此查询,如:

 select * from (YOUR_BIG_QUERY) where Ordinal <> 1

答案 1 :(得分:0)

只要在select之前执行where,在where子句中不知道所选别名。你只能按顺序使用别名。

你必须这样写:

SELECT * FROM 
(
Select TD.ProductAccumRule_Id,TD.PRODUCT_ID,TD.VARIABLE_ID,TD.Accum_code,Ordinal = row_number() over( partition by TD.PRODUCT_ID,TD.VARIABLE_ID,TD.Accum_code order by TD.PRODUCT_ID,TD.VARIABLE_ID,TD.Accum_code) From testdata TD
Join (
select PRODUCT_ID,VARIABLE_ID,Accum_code from testdata where 
isActive = 1
GROUP BY PRODUCT_ID,VARIABLE_ID,Accum_code
having count(*) > 1
) TEMP on TD.Product_Id = temp.Product_Id and TD.Variable_Id = TEMP.Variable_Id and TD.Accum_code = TEMP.Accum_code
where TD.isActive = 1
) myInnerQuery
where Ordinal  <> 1