Czy można wyciągnąć nazwy kolumn, które zawierają tylko wartości NULL?

0

Hej,
jak najprościej wyciągnąć wszystkie kolumny danej tabeli, w której wszystkie wiersze mają nulle? Tzn dana kolumna nie ma wartości innej niż null.
T-SQL

1

To trochę bzdura, ponieważ takie tabele nie mogą posiadać klucza głównego (Primary Key).
Naprawdę masz takie tabele bez zdefiniowanego PK?

Da się sprawdzić które tabele nie posiadają PK i dla nich należy sprawdzić wszystkie wiersze i wszystkie kolumny.
To karkołomne, ale możliwe nawet w czystym SQL.

Odpowiedź brzmi: tak, można.
Ale to mi trochę brzydko pachnie...

1

Albo ja nie kumam albo Ty nie zrozumiałeś @wloochacz bo jak to tabela gdzie jakaś kolumna ma wartość null nie może posiadać PK. Oczywiście, ze może.

http://sqlfiddle.com/#!18/86e52/1

Zakładam, że odczytałeś, że cały wiersz posiada wartości null wtedy to prawda. OP jednak chodzi o nazwę kolumny "kol3" z załączonego przykładu.

EDIT: A co do samego pytania to jeśli tych kolumn nie ma za dużo i to chodzi o jakieś 1 rozwiązanie to IMO najbanalniej CASE'm jak choćby tu opisali:
https://stackoverflow.com/questions/38035952/selecting-column-names-where-values-are-null

1

Dwie opcje są:

  • bez interwencji w tabele z informacją o schemacie - trzeba wylistować wszystkie kolumny w zapytaniu, którymi jest się zainteresowanym czy mają wszystkie wartości null, dodatkowo na końcu dostaniesz true/false, a nie odfiltrowane kolumny
  • z interwencją w information_schema - powyższe problemy znikają

1 użytkowników online, w tym zalogowanych: 0, gości: 1