【发布时间】:2021-07-13 14:29:13
【问题描述】:
如何将一个表与条件结果连接起来?
- 第一个查询获取表 1 中的所有信息
SELECT ID, Name, Blob From [Table-1]
2)第二个请求检查该值是否通过具有所需状态的ID。如果有,则取第一个具有所需状态的状态,如果没有该状态,则取该 ID 的任何第一个。
IF EXIST (select * from [Table-2] where ID = *anyID* and STATUS = *anyStatus*)
begin
SELECT TOP 1 * from [Table-2] where ID = *anyID* and STATUS = *anyStatus*
end
else
begin
SELECT TOP 1 * from [Table-2] where ID = *anyID*
end
- 因此,我需要一个通用表,其中包含表 1 中的所有列以及表 2 中的值(如果有)。 我试图通过 JOIN 来做,但出了点问题
SELECT t1.ID, t1.Name, t1.Blob From [Table-1] as t1
LEFT JOIN
(
IF EXIST (select * from [Table-2] where ID = *anyID* and STATUS = *anyStatus*)
begin
SELECT TOP 1 * from [Table-2] where ID = *anyID* and STATUS = *anyStatus*
end
else
begin
SELECT TOP 1 * from [Table-2] where ID = *anyID*
end
) as t2
ON t1.ID = t2.ID
【问题讨论】:
标签: sql sql-server database sql-server-2008