如何使用id获取不同的(数据)并且不使用聚合函数到id

时间:2013-07-16 05:59:54

标签: c# sql asp.net-mvc-3

我想要像这样的独特数据代理。

Id       Agent                  

2471    A   
2765    B
2955    C      
1770    D   
2431    F   
2981    H   
2460    M   
1739    R
2040    S
2023    T   
1692    V   

我正在使用此查询:

SELECT  max(propertyid) as propertyid , agent_name
FROM         dbo.properties
WHERE     (agent_name NOT IN ('null', '')) group by agent_name

我为视图创建了此查询,但我想在MVC模型中使用该视图。但是这个视图不能接受模型,因为这里没有主键或外键。 此表包含Id是主键,但我使用带有Id的聚合函数,它已更改为普通字段。

请回复我。

1 个答案:

答案 0 :(得分:2)

这将返回相同的结果。试试这个

;WITH cte AS
    (
    SELECT ROW_NUMBER() OVER(PARTITION BY agent_name ORDER BY propertyid DESC) AS rno,
          propertyid ,
          agent_name
    FROM  dbo.properties
    WHERE  ISNULL(agent_name,'') !=''

    )
    SELECT propertyid ,agent_name
    FROM cte 
    WHERE rno=1