0

我正在输入样本日期,我应该做一些与我要求类似的事情。我想运行一个查询,如果它有 1 或者如果任何一列有 1,它将把任何两列中的值拉出 3,它将只返回那些结果。但是,它应该搜索所有三列,并且在它发现值为 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
4

3 回答 3

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 中的任何一个但排除 where他们都= 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)
于 2012-07-09T02:51:13.640 回答
0

尝试这个:

select * from mytable
where prio + prio2 + prio3 = (
    select max(prio + prio2 + prio3)
    from mytable
    where prio = 1 or prio2 = 1 or prio3 = 1
)
于 2012-07-09T03:17:39.037 回答
-1
SELECT *
FROM tbl
WHERE 1 IN (prio,prio2,prio3)
于 2012-07-09T03:40:16.740 回答