我正在处理samle日期,我应该做类似于我所要求的事情。 我想运行一个查询,它会将任意两列中的值拉出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
答案 0 :(得分: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)
答案 1 :(得分:0)
试试这个:
select * from mytable
where prio + prio2 + prio3 = (
select max(prio + prio2 + prio3)
from mytable
where prio = 1 or prio2 = 1 or prio3 = 1
)
答案 2 :(得分:-1)
SELECT *
FROM tbl
WHERE 1 IN (prio,prio2,prio3)