簡體   English   中英

存儲過程從3中的2列中查找值

[英]stored procedure to find value in 2 columns out of 3

我輸入了約會日期,我應該做類似的事情。 我想運行一個查詢,該查詢將在任何兩列中將值拉出3(如果它具有1),或者如果任何一列具有1,它將僅返回那些結果。 但是,它應該搜索所有三列,並且在發現值等於1的三列中的任何一列中,都應返回該結果。 誰能幫我這個忙。 提前致謝。

 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

因此,基本上,您想在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)

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM