2013-07-29 146 views
-1

我有一個由96列組成的表。 而根據第一列的值,只有少數具有一個值。數據庫過濾空值

讓我們說第一列ID 爲:ID 111752只列數9-17有一定的價值。

當我必須處理項目111752時,如何過濾空值?

+0

怎麼樣'哪裏遠處是null'?如果你不知道如何過濾空值,你真的需要自己寫一本關於SQL的好書(或者閱讀一個好的在線教程) – Barranka

+3

我認爲你的第一個問題是有一個96列的表。如果大多數列通常是空白的,則需要重新訪問數據庫模式。 – jcsanyi

+0

@Barranka我的理解是他想過濾出**列**,對於特定的行是空的。這不是用WHERE子句解決的問題 - 這是一個模式問題。 – jcsanyi

回答

1

SQL不支持有條件地選擇列。如果您堅持使用此數據庫模式,則唯一的選擇是SELECT *,然後篩選客戶端(PHP?)上的結果列。

但是 - 我認爲這裏真正的問題在於你的模式。如果你有一個包含96列的表,並且其中大部分(或其中大部分)通常都是NULL,那麼數據庫模式就有問題了 - 也就是說,你的數據分組方式存在表中。

閱讀數據庫規範化,並考慮如何重新設計數據庫。