2012-07-09 22 views
0

我在放置日期,我應該做類似的事情。 我想運行一個查詢,如果任何兩列中的值爲1,或者如果任何一列中有1,那麼它將只返回那些結果。然而,它應該搜索所有三列,並在三個列中的任何一列中找到值爲1,它應該返回該結果。任何人都可以幫助我這個。提前致謝。存儲過程在3列中找到2列中的值

ID Patient Patient Name prio prio2 prio3 
------------------------------------------------- 
1 101563 Robert Riley  1  1  1 
2 101583 Cody Ayers   1  0  1 
3 101825 Jason Lawler  0  0  1 
4 101984 Dustin Lumis  1  0  0 
5 102365 Stacy smith   1  0  0 
6 102564 Frank Milon   1  0  0 
7 102692 Thomas Kroning  1  0  0 
8 102856 Andrew Philips  1  0  0 
9 102915 Alice Davies  0  0  1 
10 103785 Jon Durley   0  0  1 
11 103958 Clayton Folsom  1  1  1 
12 104696 Michelle Holsley 1  1  1 
13 104983 Teresa Jones  1  0  1 
14 105892 Betsy Prat   1  1  0 
15 106859 Casey Ayers   1  1  0 
+2

您可以提高您的問與答如果表中的內容與本問題中的內容相同,則可以通過在查詢中添加預期的結果來加以解決 – 2012-07-09 06:50:02

回答

1

所以,基本上你想拉任何地方的任何3列prio,prio2或prio3 = 1?請澄清你的問題,如果這不是你問的(爲更好的答案)。另外,你應該用什麼類型的SQL來標記它。

SELECT ID,Patient,[Patient Name],prio,prio2, prio3 
FROM uRtable 
WHERE prio = 1 OR prio2 = 1 OR prio3 = 1 

但是,如果你說你想拉回來的任何行,其中它們中的任何3個PRIO,prio2,或prio3 = 1的,但至少有一個是0(獲取任何地方的任何3 = 1,但不包括他們所有= 1),可能是最簡單的方式瞭解,這將是

SELECT ID,Patient,[Patient Name],prio,prio2, prio3 
FROM uRtable 
WHERE (prio = 1 OR prio2 = 1 OR prio3 = 1) 
AND (prio = 0 OR prio2 = 0 OR prio3 = 0) 
0

試試這個:

select * from mytable 
where prio + prio2 + prio3 = (
    select max(prio + prio2 + prio3) 
    from mytable 
    where prio = 1 or prio2 = 1 or prio3 = 1 
) 
-1
SELECT * 
FROM tbl 
WHERE 1 IN (prio,prio2,prio3) 
相關問題