【发布时间】:2010-08-12 17:54:05
【问题描述】:
我正在尝试创建一个提取特定记录的视图。我遇到的问题是有 2 条记录可供选择,状态标志为 1 或 2。如果存在,它应该提取 1 记录,如果不存在,则提取 2 记录。
从一个角度来看这可能吗?
【问题讨论】:
-
可以提供表的schema吗?
标签: sql sql-server-2005 view
我正在尝试创建一个提取特定记录的视图。我遇到的问题是有 2 条记录可供选择,状态标志为 1 或 2。如果存在,它应该提取 1 记录,如果不存在,则提取 2 记录。
从一个角度来看这可能吗?
【问题讨论】:
标签: sql sql-server-2005 view
尝试按状态值排序,或分组并返回最小值
【讨论】:
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
【讨论】:
拉select top 1 并按状态标志对其进行排序。
【讨论】:
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 所写的内容不同。
【讨论】: