比方說,我有如下表:獲取行至少有兩個非零列
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)
)
現在我想有一個SQL這讓我這有ATLEAST兩列行的值不爲零的第COLUMN1到column6。
例如如果我們有行
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
所以我的查詢應返回ID 1和3,因爲他們有至少2個非零列。
子選擇將非常有效,初始(簡單計數非零字段)更清晰和更高效。雖然第二種方法可行,但我建議將其從答案中刪除。 – ErstwhileIII
你不需要第二種選擇中的UNION ALL嗎? (以防col1 = col2) – jarlh
您的第一個解決方案在SQL小提琴中不起作用。我不確定爲什麼,因爲JeurgenD的解決方案。 – AdamMc331