将值设置为其ID存在于另一个表中的行上的列

时间:2013-10-21 00:44:42

标签: sql sql-server database view sql-server-2008-r2

我在SQL Server 2008 R2数据库中有两个表。我想创建一个View,其中包含Table1中的所有列,并接收一个名为“Photo_Exist”的附加列,如果Table2中的ID存在于Table2中,则分配为“1”或“True”。

表1 : ID,Col1,Col2,...,Coln

表2 : Linked_ID

查看: ID,Col1,Col2,...,Coln,Photo_Exist

提前致谢!

亚历

3 个答案:

答案 0 :(得分:2)

试试这个

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

答案 1 :(得分:1)

使用此查询创建视图。这应该有帮助

  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

答案 2 :(得分:1)

我喜欢使用子查询来处理这类事情。

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