2
我的表看起來像這樣SQL查詢的WHERE子句具有多行條目
DocumentID AttributeID LongValue StringValue BooleanValue
100 1 null null 1
100 2 123 null null
100 3 null test null
每個屬性ID是一個類型的,只有該列填充和其他一切都是空。文檔可以有多個屬性。
我的查詢需求,我覺得文件,其中
Attribute ID 1 has value 1
Attribute ID 2 has value 123
Attribute ID 3 has value test
我正在寫一個這樣的查詢
select documentID
from table
where (
(AttributeID=1 AND BooleanValue=1) AND
(AttributeID=2 AND LongValue=123) AND
(AttributeID=3 AND StringValue="test"))
上面的查詢,很明顯,是給我雖然文件100滿足我的限制結果爲零。 如何更改我的查詢以獲取文檔ID 100作爲結果?
感謝但不會返回一個文件,如果它匹配任何一個屬性值?此外,計數可以是動態的,不必是3. – nick01
@ user2812714不行。如果它符合'WHERE'子句中的三個條件,它將只顯示'documentID'。 'HAVING'子句過濾了'documentID',因爲你在'WHERE'子句中指定了三個條件,所以它們等於3。對於*動態*,創建一個過程或從參數設置值的東西。 –
它的工作原理,謝謝! – nick01