Filtrowanie rekordów z wartościami null

0

Posiadam pewna baze ( 1 tabela, 8 kolumn - ok. 10 tys. rekordów i rośnie). Niektóre rekordy posiadają wartości 0 (błąd urządzenia pomiarowego).

Dane pobieram do tworzenia wykresu z róznych przedziałów czasowych. Jak najlepiej usunąć te wartości "0" przy pobieraniu? A może jakis trigger załozony na bazie? Proszę o rady

1

Nie wiem do końca co masz na myśli, no null to nie to samo co zero.
Nie wystarczy przy zapytaniu do bazy dać warunek

SELECT........ WHERE pole <>0 

?

Edit: A przepraszam, już wiem o co chodzi - urządzenie zapisując do bazy zapisuje wartości 0. Triger trigerem, ale czy w ogóle urządzenie nie może nie zapisywać wartości, jeśli ona jest równa 0?

1

Jeśli nie chcesz ich w ogóle przechowywać, czyli takie rekordy nie powinny w ogóle być dodane do bazy to wystarczy dodać ograniczenie na tej kolumnie.

ALTER TABLE tabela
ADD CONSTRAINT chk_wartosc
CHECK (wartosc<>0)

Jeśli chcesz je pobierać z pominięciem tej wartości to w WHERE bierzesz wartości różne od zera.

0

Tak to wygląda w bazie:
http://zapodaj.net/449f9a43b269a.jpg.html

w skrócie mówiąc chciałbym te rekordy z "0" powywalać:)

0

Może zwykły DELETE? Co dokładnie jest tu przeszkodą?

DELETE FROM tabela WHERE wartosc1=0 AND wartosc2=0 ...

Następnie możesz założyć ograniczenie, o którym wcześniej pisałem i już się takie pomiary nie pojawią. Jeśli kilka wartości na raz ma być zerem, można to obsłużyć poprzez trigger.

0

Dziękuje za cenne rady, rozwialiście moje wątpliwości;)

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