2010-08-15 67 views
0

只有當它不爲null時,我需要在我的SQL結果中顯示特定的列。如果它爲空,我不希望該列出現在我的結果中。僅當列不爲空時才顯示列

有沒有辦法在SQL中表達這種情況?

+0

我想這是不可能的。我真的不能想到它的好用處。你能解釋一下你的情況嗎? – 2010-08-15 22:52:19

+0

我試圖創建一個表來顯示在網頁上。此表上的列取決於數據庫中的內容。如果某一列中沒有任何內容,那麼顯示它就沒有意義。 – StackOverflowNewbie 2010-08-15 22:56:42

+0

在這種情況下,在您的代碼中編寫邏輯以僅顯示正確數量的不使用sql的列來執行此操作。如果你這樣做,它的數據庫很可能沒有正常化。 – 2010-08-15 23:05:16

回答

3

這沒有意義,因爲查詢可能會返回多行。一行可能有問題列的值,而下一行可能沒有值。然後,條件列會在返回的行之間產生結構不一致。

2

不,它不是......

+0

有沒有辦法? – StackOverflowNewbie 2010-08-15 22:51:38

+0

是的,沒有辦法。選擇總是有固定數量的列返回,這是無條件的。 – zerkms 2010-08-15 22:53:57

1

SQL通常不會讓你推理整個列的屬性。條件在行的屬性上。所以沒有辦法說「如果這一列中的所有值都是空的......」。但是,您可以將自己限制爲缺少該屬性的行。

如果你想顯示的列,只有當它不爲空的每一行,你可以做一個COUNT(*) WHERE ...您的一般狀況... AND that_column IS NULL,然後重新進行查詢,包括列,如果第一個結果是0,否則排除它。但我不確定你爲什麼想要做這樣的事情。

2

這是不可能的,真的沒有必要。你需要有固定數量的列,沒有別的辦法。但那不是你的問題,你根本不需要這個!

查詢只是爲了檢索數據,而不是爲了表示數據。如果所有值都是null,您應該檢索它並隱藏列。

相關問題