SQL视图条件选择

时间:2010-08-12 17:54:06

标签: sql sql-server-2005 view

我正在尝试创建一个拉取特定记录的视图。我遇到的问题是有2条记录可供选择,状态标志为1或2.如果存在,则应该拉出1条记录,如果不存在则记录。

从视图中可以实现吗?

4 个答案:

答案 0 :(得分:3)

尝试按状态值排序,或分组并返回最小值

答案 1 :(得分:0)

select top 1并按状态标记排序。

答案 2 :(得分:0)

Select B.*
FROM
    (Select 
       ID
       ,MIN(Flag) Flag
    From TableName
    Group by ID) A
    LEFT JOIN TableName B on A.ID=B.ID and A.Flag=B.Flag

答案 3 :(得分:0)

select * from table
where Status = 1

union

select * from table t
where status = 2 
    and not exists (select * from table t2 where t.id = t2.id and Status = 1)

请注意,当您有要比较的id列时,此方法最有效。这与Faiz所写的不同。