在SQLite的WHERE子句中有多个条件时,如何使用“or”语句?

gkn4icbw  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(182)

我正在尝试检索具有“积极”结果的数据和包含以下任何代码的代码集:[U071、R12、Z515、R509]作为我对表1的期望目标。我尝试使用“or”,但它总是给我带来负面和正面结果的混合,而不仅仅是正面结果。我希望我的问题是清楚的,因为我是新来的。
表1的预期目标:
ID|Start_Date|测试结果|Code|End_Date
-|
1|03-31-2021|肯定|U071|03-31-2021
2|06-06-2020|阳性|R12|06-09-2020
2|06-06-2020|阳性|Z515|06-10-2020
3|06-30-2021|阳性|R509|07-02-2021
4|2020-08-08|阳性|U071|08-10-2020
4|08-09-2020|阳性|Z515|08-10-2020
注:我还希望将ID%2归为%1。
问题是:
ID|Start_Date|测试结果|Code|End_Date
-|
1|03-31-2021|肯定|U071|03-31-2021
2|06-05-2020|否定|R12|06-09-2020
2|06-05-2020|否定|Z515|06-09-2020
3|06-03-2021|阳性|R509|07-02-2021
4|2020-08-10|否定|U071|08-10-2020
4|08-06-2020|阳性|Z515|08-10-2020
我的代码是:

CREATE TABLE table1 AS
select   ID
        ,TEST_RESULT  
        ,START_DATE
        ,END_DATE
        ,Code
from table0
where TEST_RESULT = 'POSITIVE' AND Code = 'U071' OR Code = 'Z20828' OR DIAGNOSIS_CD = 'Z20822' OR DIAGNOSIS_CD = 'R112' OR DIAGNOSIS_CD = 'R509'
group by ID, START_DATE
ORDER BY ID;
ffdz8vbo

ffdz8vbo1#

我认为真正的问题是您没有使用(在和之后。但您可以使用IN使其更清楚--如下所示:

where TEST_RESULT = 'POSITIVE' AND (Code IN ('U071','Z20828') OR DIAGNOSIS_CD IN ('Z20822','R112','R509'))

相关问题