2011-09-07 58 views
2

在類似這樣的查詢:有條件地選擇一列

SELECT 
    COLUMN1, 
    CASE WHEN 1=2 THEN 
    COLUMN2 
    END AS "COLUMN2" 
FROM 
    TABLE1 

...這似乎總是與它NULL值的數據集返回COLUMN2。我想避免這種情況。基本上,在某些情況下,我選擇的一列不適用,因此我根本不想選擇它。我知道如何在代碼中「隱藏」它,但是我希望在數據庫過程中儘可能地實現這一點,而不會使查詢過度複雜化。

+0

你能更詳細地解釋爲什麼你要這樣做嗎? – Rene

+0

是的,看最後一句話。 – Tsar

回答

4

這是不可能的。查詢必須具有一組固定的列(從已知的一組表中繪製)。這部分不是動態的,它需要在「編譯時」知道。

您需要刪除應用程序中的列(或者有多個查詢,可能在客戶端代碼中動態生成)。