SQL 查看条件选择
Posted
技术标签:
【中文标题】SQL 查看条件选择【英文标题】:SQL View Conditional Selection 【发布时间】:2010-08-12 17:54:05 【问题描述】:我正在尝试创建一个提取特定记录的视图。我遇到的问题是有 2 条记录可供选择,状态标志为 1 或 2。如果存在,它应该提取 1 记录,如果不存在,则提取 2 记录。
从一个角度来看这可能吗?
【问题讨论】:
可以提供表的schema吗? 【参考方案1】:尝试按状态值排序,或分组并返回最小值
【讨论】:
【参考方案2】: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】:拉select top 1
并按状态标志对其进行排序。
【讨论】:
添加了标签,但它是 SQL Server 2005。【参考方案4】: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 所写的内容不同。
【讨论】:
以上是关于SQL 查看条件选择的主要内容,如果未能解决你的问题,请参考以下文章