表1具有6選項的字段集A,B,C,
持有值0=false and 1=true
和SendToA,SendToB,SendToC
持有值null=0, success=1, failure=2
.The檢查是如果任何字段A,B,C
= 1(true)
然後字段SendToA,SendToB,SendToC=1(success)
,提取數據。因此,我在SQL查詢所做的是:篩選記錄根據6個相關領域
首先查詢
SELECT TableId
,A
,B
,C
,SendToA
,SendToB
,SendToC
FROM Table1
WHERE (A=1 AND SendToA =1)
OR (B=1 AND SendToB=1)
OR (C=1 AND SendToC=1)
第二個查詢
SELECT TableId
,A
,B
,C
,SendToA
,SendToB
,SendToC
FROM Table1
WHERE (A=1 OR B=1 OR C=1)
AND (SendToA=1 OR SendToB=1 OR SendToC=1)
這是例如,對於第二查詢執行結果。
TableId A B C SendToA SendToB SendToC
ABC1 1 1 0 1 2 1
ABC2 0 0 1 0 1 0
有一定的記錄中的問題時,任何領域A,B,C=1(true)
但SendToA,SendToB,SendToC is not = 1(success)
。如果A,B,C=0(false)
其在SendToA,SendToB,SendToC
中的值不重要,則這兩個查詢不會執行正確的結果。要說清楚的是我想根據A,B,C = 1
中的任何值然後在SendToA,SendToB,SendToC=1
中的值過濾記錄,然後提取數據。在記錄其無論是A or B or C=1
要麼但至少要麼A or B or C
必須有1.Once A or B or C=1
其所屬SendToA,SendToB,SendToC
也必須1否則忽略。
查詢不一樣,這就是爲什麼他們不一定會給出相同的結果。你在期待什麼? – ahoxha
這是有點不清楚你想要什麼?你是否希望看到所有的「發送」都成功了? – user1429080
@ user1429080您好我想根據A,B,C = 1和SendToA,SendToB和SendToC = 1中的任何一個過濾記錄。但是當A = 1並且SentToA = 1時,在我的表中有某些記錄,但是B = 1並且SendToB不是= 1.如果B = o AND /或C = 0(不要煩惱檢查SendtoB和/或SendToC = 1)只要A = 1且SendtoA = 1。只要檢查SendTo值= 1,如果它們對應的A或B或C = 1。對不起,這是我能解釋的最好方式。 – xChaax