我將多個表連接在一起并得到類似于
USER_ID YEAR FIELD1 FIELD2 ...
1 2020 -- X
1 2020 -- Y
1 2020 -- Z
1 2020 Value X
1 2020 Value Y
1 2020 Value Z
1 2021 -- X
1 2021 -- Y
1 2021 -- Z
2 2020 -- X
2 2020 -- Y
2 2020 -- Z
2 2020 Value X
2 2020 Value Y
2 2020 Value Z
3 2020 -- X
3 2020 -- Y
3 2020 -- Z
如果FIELD1不是'--'的相同USER_ID和YEAR的值存在,我想洗掉FIELD1是'--'的行。所以我應該得到這樣的結果:
USER_ID YEAR FIELD1 FIELD2 ...
1 2020 Value X
1 2020 Value Y
1 2020 Value Z
1 2021 -- X
1 2021 -- Y
1 2021 -- Z
2 2020 Value X
2 2020 Value Y
2 2020 Value Z
3 2020 -- X
3 2020 -- Y
3 2020 -- Z
我不想洗掉來自 USER_ID、YEAR 和 FIELD1 的表中的行。我只想將正確的 where 子句添加到長連接查詢的末尾。我目前在我的連接查詢末尾有這樣的東西,它可以在沒有 where 子句的情況下作業:
select...
from TABLE1 as t
join...
where t.FIELD1 = '--' and exists(
select *
from TABLE1 as t2
where t.USER_ID= t2.USER_ID and
t.YEAR = t2.YEAR and
t2.FIELD1 != '--')
uj5u.com熱心網友回復:
您可以 OR`,因為它與其他條件互斥
SELECT * FROM table1 t1
WHERE (FIELD1 = '--'
AND NOT EXISTS( SELECT 1 FROM table1 t2 WHERE t1.USER_ID = t2.USER_ID AND t1.YEAR = t2.YEAR
AND t2.FIELD1 <> '--'))
OR FIELD1 <> '--'
ORDER BY USER_ID, YEAR
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/459458.html
上一篇:構建APK卡在Task:app:checkReleaseAarMetadata
下一篇:匹配兩個不重復按時間順序評估的表
