sql server-如何在我的查询中获得不等于1的记录



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

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

我认为你需要嵌套这样的查询:

 select * from (YOUR_BIG_QUERY) where Ordinal <> 1

只要在选择之前执行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

最新更新