2014-02-07 37 views
0

我無法使用SQL Server 2008中,我有幾個表,看起來像創建視圖:創建可覆蓋NULL值的視點表

父表

+----+------+ 
| id | date | 
+----+------+ 
| 1 | 2010 | 
+----+------+ 

兒童表

+----+------+-----------+ 
| id | date | ParentID | 
+----+------+-----------+ 
| 1 | NULL |   1 | 
| 2 | 2011 |   1 | 
+----+------+-----------+ 

我試圖實現一種觀點認爲,看起來就像是(b ASED上的兩個前面的實施例):

子表CustomView

+----+------+----------+ 
| id | date | ParentID | 
+----+------+----------+ 
| 1 | 2010 |  1 | 
| 2 | 2011 |  1 | 
+----+------+----------+ 

基本上,子表具有從它的父應「繼承」某些字段當它的值是NULL(第一行子表格:檢索'2010')。 否則,它應該只顯示它​​的值(Child table的第二行:'2011')。

回答

1

使用聚結。只要你喜歡,你可以擁有許多參數。它返回第一個不爲null的。當它們全部爲空時,它返回空值

select c.[id], 
     coalesce(c.[date], p.[date]) [date], 
     c.parentid 
    from child c 
    join parent p 
    on p.[id] = c.parentid 
0

使用IsNull函數在SELECT

SELECT Child.Id, 
     IsNull(Child.Date, Parent.Date), 
     ParentId 
    FROM Child 
    JOIN Parent ON Parent.Id = Child.ParentId