我試圖找到一種方法來顯示只有列中有值的列。但由於我的數據庫包含數十列,我不想事先指定我需要的列。 我在尋找一個查詢,如:用於刪除所有完全空列的SQL查詢
select * from table_name where column_has_non_null_data_somewhere
例子:
感謝
我試圖找到一種方法來顯示只有列中有值的列。但由於我的數據庫包含數十列,我不想事先指定我需要的列。 我在尋找一個查詢,如:用於刪除所有完全空列的SQL查詢
select * from table_name where column_has_non_null_data_somewhere
例子:
感謝
你可以試試下面消除所有空或null值的列的方式。
假設你有;
SELECT * FROM Filter
輸出:
A B C D
NULL NULL NULL NULL
NULL 1 NULL NULL
NULL 1 NULL NULL
NULL 1 NULL NULL
1 1 0 NULL
嘗試:
IF ((SELECT COUNT(A) FROM Filter) < 1)
SELECT B, C, D FROM Filter
ELSE IF ((SELECT COUNT(B) FROM Filter) < 1)
SELECT A, C, D FROM Filter
ELSE IF ((SELECT COUNT(C) FROM Filter) < 1)
SELECT A, B, D FROM Filter
ELSE IF ((SELECT COUNT(D) FROM Filter) < 1)
SELECT A, B, C FROM Filter
輸出:
A B C
NULL NULL NULL
NULL 1 NULL
NULL 1 NULL
NULL 1 NULL
1 1 0
嘿@Reyan,謝謝你的回覆。正如我在原始問題中提到的那樣,我正在尋找一種應用過濾器而不指定列名的方法,這是因爲我的表有大量的列。 –
還沒有@Reyan。 –
SQL查詢具有固定數量的列,在'SELECT'子句中定義。如果你想要可變數量的列,那麼你需要使用動態SQL。 –
我會考慮重新設計數據庫。 – jarlh
你能告訴我們你的輸出應該是什麼樣子嗎? –