Powiedzmy mam poniższej tabeli:Get wiersze z co najmniej dwoma niezerowej Kolumny
CREATE TABLE person
(
key integer NOT NULL AI ,
name varchar NOT NULL DEFAULT 0,
column1 integer NOT NULL DEFAULT 0,
column2 integer NOT NULL DEFAULT 0,
column3 integer NOT NULL DEFAULT 0,
column4 integer NOT NULL DEFAULT 0,
column5 integer NOT NULL DEFAULT 0,
column6 integer NOT NULL DEFAULT 0,
CONSTRAINT pk PRIMARY KEY (key)
)
teraz chcę mieć sql, które ulegną mi wiersze, które mają co najmniej dwa słupy wartości zerowe dla kolumny COLUMN1 do column6.
np. jeśli mamy wiersze
1 TEST 0 0 6 1 0 5
2 ABCD 0 0 0 0 0 5
3 DEFG 0 0 4 1 0 5
4 HIJK 0 0 0 1 0 0
więc moje zapytanie powinno zwrócić ID 1 i 3, ponieważ mają co najmniej 2 niezerowe kolumny.
będzie dość sprawny, początkowy (po prostu liczenie niezerowych pól) jest znacznie bardziej przejrzysty i wydajniejszy. Podczas gdy druga alternatywa zadziałałaby, zalecałbym usunięcie jej z odpowiedzi. – ErstwhileIII
Czy nie potrzebujesz UNION ALL w drugiej alternatywie? (Tylko w przypadku col1 = col2) – jarlh
Twoje pierwsze rozwiązanie nie działa w skrzypcach SQL. Nie jestem pewien, dlaczego, ponieważ rozwiązanie JeurgenD ma. – AdamMc331