Sql 根据另一个字段值,从另一个表中为字段指定一个值

Sql 根据另一个字段值,从另一个表中为字段指定一个值,sql,sql-server-2005,Sql,Sql Server 2005,我有一个表,有四列:账户#、卡#、卡名类型和持卡人姓名。CardNameType字段将标识卡的所有者。如果它等于0,我想从父表中获取名称;如果是1,从母表中获取;如果是2,从子表中获取。每个表都有一个主键Account,每个Account可以有多张卡 我怎么能这样做呢?案例陈述会起作用吗?或者最好的方式是什么 编辑:对不起,我误解了数据。我认为你给我的解决方案行不通。父亲和母亲的名字出现在同一张表中。例如,如果父亲或母亲有一张卡片,表中会显示两条记录(一条为父亲,一条为母亲)。然而,如果卡片是为

我有一个表,有四列:账户#、卡#、卡名类型和持卡人姓名。CardNameType字段将标识卡的所有者。如果它等于0,我想从父表中获取名称;如果是1,从母表中获取;如果是2,从子表中获取。每个表都有一个主键Account,每个Account可以有多张卡

我怎么能这样做呢?案例陈述会起作用吗?或者最好的方式是什么


编辑:对不起,我误解了数据。我认为你给我的解决方案行不通。父亲和母亲的名字出现在同一张表中。例如,如果父亲或母亲有一张卡片,表中会显示两条记录(一条为父亲,一条为母亲)。然而,如果卡片是为孩子准备的,那么它就在另一个表中。我需要一种方法,这样我就可以只找回母亲、父亲或孩子。

是的,在这里,听起来最好使用案例陈述

例如:

SELECT CASE c.CardNameType
            WHEN 0 THEN f.Name
            WHEN 1 THEN m.Name
            WHEN 2 THEN c.Name
       END AS [Card Owner]
FROM
    Card c
INNER JOIN
    Father f ON f.Account# = c.Account#
.
.
.