2012-02-06 82 views
0

我有一个包含四列的表格:Account#,Card#,CardNameType和持卡人姓名。 CardNameType字段将标识谁是卡的所有者。如果它等于0,我想从父表中得到名字;如果它是1,则从MOTHER表中获取;如果是2,则从CHILD表中获取。每个表格都有一个Account#的主键,每个Account#可以有多个Card#。根据另一个字段的值为另一个表中的值分配一个字段

我该怎么去做这件事? CASE声明是否有效?或者最佳方式是什么?

编辑:对不起,我误解了数据。你给我的解决方案我不相信会起作用。父亲和母亲的名字出现在同一张表中。例如,如果父亲或母亲有一张卡片,表格中会出现两条记录(一条是父亲,一条是母亲)。但是,如果卡片是用于儿童的,那么它在另一张桌子上。我需要一种办法让我能够找回母亲或父亲或孩子。

回答

2

是的,这听起来像是一个案例声明最好的利用。

如:

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# 
. 
. 
. 
+0

@thevanillathrilla所以这样做无助于??? – 2012-02-06 18:30:05

相关问题