id_product|pn|ean13|supplier|
-----------------------------
1 |1F46G| FGH45642346|1|
2 |8BBBB| null |1|
3 |1F46G| null |2|
4 |1F46G| FGH45642346 |3|
你好我有這樣的表結構(只是更多的行)。
我想選擇 ean13 為空但存在一些相同 PN 但 ean13 不為空的行的所有行。
SELECT id_product,pn
FROM product
WHERE pn !='' AND (ean13 is null OR ean13 = '')
GROUP BY pn
HAVING count(pn)>1
此 Select 部分作業,但顯示不存在的行 下一行 ean13 不為空
我試過使用功能存在,但持續時間真的很長。
uj5u.com熱心網友回復:
基于您的精確描述的查詢選擇 ean13 為空但存在相同 PN 但 ean13 不為空的某些行的所有行如下所示。沒有任何跡象表明任何聚合。
我不知道你的意思是我試過使用功能存在,因為你沒有包括這個。
select id_product, pn
from product p
where ean13 is null
and exists (
select * from product p2 where p2.pn = p.pn and p2.ean is not null
);
uj5u.com熱心網友回復:
您可以如下重寫查詢以獲得所需的輸出。撰寫一個子查詢來識別具有 ean13 的 pn 不為空。
SELECT id_product,pn
from product
WHERE pn !='' AND (ean13 is null OR ean13 = '')
and pn in(
select pn from product where not (ean13 is null OR ean13 = '')
);
DB Fiddle:結果
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/474789.html
上一篇:如何洗掉包括第一行在內的重復行?
下一篇:如何修復密碼以在mysql中讀取
