我正在尝试创建一个拉取特定记录的视图。我遇到的问题是有2条记录可供选择,状态标志为1或2.如果存在,则应该拉出1条记录,如果不存在则记录。
从视图中可以实现吗?
答案 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所写的不同。