我在 SQL Server 2008 R2 数据库中有两个表。我想创建一个视图,其中包含 Table1 中的所有列,并接收附加的名为“Photo_Exist”的附加列,如果 Table1 中的 ID 存在于 Table2 中,则将其分配为“1”或“True”。
表 1:ID、Col1、Col2、...、Coln
表 2 :Linked_ID
查看:ID、Col1、Col2、...、Coln、Photo_Exist
提前致谢!
亚历克斯
我在 SQL Server 2008 R2 数据库中有两个表。我想创建一个视图,其中包含 Table1 中的所有列,并接收附加的名为“Photo_Exist”的附加列,如果 Table1 中的 ID 存在于 Table2 中,则将其分配为“1”或“True”。
表 1:ID、Col1、Col2、...、Coln
表 2 :Linked_ID
查看:ID、Col1、Col2、...、Coln、Photo_Exist
提前致谢!
亚历克斯
Try this
SELECT *,
CASE WHEN EXISTS (SELECT * FROM Table2 AS T2 WHERE T2.Linked_ID=T1.ID)
THEN 1
ELSE 0
END AS Photo_Exist
FROM Table1 AS T1
使用此查询创建视图。这应该有帮助
select table1.*, case when table2.linked_id is null then 0 else 1 end as Photo_exist
from table1 left outer join table2 on table1.id =table2.linked_id
我喜欢对这类事情使用子查询。
select
t1.*,
Photo_Exists =
case
when t2.Linked_ID is null then 0
else 1
end
from Table1 t1
left join
(
select distinct
Linked_ID
from Table2
) t2 on t1.ID = t2.Linked_ID