2011-09-19 29 views
1

我想同時更新表中的幾列。並且每個列的值從幾個表中檢索。我的表是:如何在Where條件下檢查空表

Table : Customer 
Columns are: 
customerCode 
kategori 
design 
designCode 
value 

Table Name : Customer_kategori 
Columns: 

customerCode 
kategori 

和類似.....

我的SQL查詢:

UPDATE Customer 
SET 
    kategori = Customer_kategori.kategori, 
    design = Customer_design.design, 
    designCode = Customer_designCode.designCode, 
    value = Customer_value.value 

FROM 
    Customer_kategori, 
    Customer_design, 
    Customer_designCode, 
    Customer_value 
WHERE 
    Customer_kategori.customerCode = Customer.customerCode 
    AND Customer_design.customerCode = Customer.customerCode 
    AND Customer_designCode.customerCode = Customer.customerCode 
    AND Customer_value.customerCode = Customer.customerCode 

列被更新,如果所有表(Customer_kategori,Customer_design,Customer_designCode,Customer_value )包含值。但是,如果表格爲空,則 列不更新爲Where條件不滿足。

我也嘗試在WHERE條件中使用CASE。我的代碼是,

WHERE 
     Customer_kategori.customerCode = CASE WHEN Customer_kategori.customerCoder IS NOT NULL THEN Customer.customerCode END 
     AND Customer_design.customerCode = CASE WHEN Customer_design.customerCode IS NOT NULL THEN Customer.customerCode END 
     AND Customer_designCode.customerCode = CASE WHEN Customer_designCode.customerCode IS NOT NULL THEN Customer.customerCode END 
     AND AND Customer_value.customerCode = CASE WHEN Customer_value.customerCode IS NOT NULL THEN Customer.customerCode END 

但是這也行不通。我也試着檢查表, 具有以下WHERE子句,

WHERE 
    CASE WHEN (select count(Customer_kategori.customerCode) > 0 from Customer_kategori) THEN Customer_kategori.customerCode = Customer.customerCode END 

But no success.. 

簡而言之:

  1. 我想檢查表在WHERE子句
  2. 空,如果是空的我只想忽略檢查那些空的表的列。

或者可能有任何建議表示讚賞別的更好的辦法.... ...

謝謝

回答

1

將這項工作?

WHERE 
(
    Customer_kategori.customerCode = Customer.customerCode 
    OR 
    0 = (select count(Customer_kategori.customerCode) from Customer_kategori) 
) 
AND 
(
    .... 
) 

UPDATE

如何:

UPDATE Customer 
SET 
    kategori = Customer_kategori.kategori, 
    design = Customer_design.design, 
    designCode = Customer_designCode.designCode, 
    value = Customer_value.value 

FROM 
    Customer left join Customer_kategori on Customer_kategori.customerCode = Customer.customerCode 
    left join Customer_design on Customer_design.customerCode = Customer.customerCode 
    left join Customer_designCode on Customer_designCode.customerCode = Customer.customerCode 
    left join Customer_value on Customer_value.customerCode = Customer.customerCode 
+0

No..IT沒有工作或者.. –

+0

請參閱更新到我原來的答覆 –

+0

沒有它仍然無法正常工作。 –