我更新了我的問題。
我有這樣的表:
| ID | 名稱 | 接觸 |
|---|---|---|
| 1 | 一個 | 65489 |
| 1 | 一個 | |
| 1 | 一個 | 45564 |
| 2 | 乙 |
所以,我想要這樣的表:
| ID | 名稱 | 接觸 |
|---|---|---|
| 2 | 乙 |
uj5u.com熱心網友回復:
使用存在邏輯我們可以嘗試:
SELECT *
FROM yourTable t1
WHERE NOT EXISTS (SELECT 1 FROM yourTable t2
WHERE t2.id = t1.id AND t2.contact IS NOT NULL);
用簡單的英語來說,上面的查詢表示回傳任何我們找不到屬于同一id組的具有非NULL聯系值的另一條記錄的記錄。
這是查詢的演示。
uj5u.com熱心網友回復:
您可以使用:
SELECT id,
MAX(name) AS name
FROM table_name
GROUP BY id
HAVING COUNT(contact) = 0;
其中,對于樣本資料:
CREATE TABLE table_name (id, name, contact) AS
SELECT 1, 'A', 3265489 FROM DUAL UNION ALL
SELECT 1, 'A', NULL FROM DUAL UNION ALL
SELECT 1, 'A', 5645564 FROM DUAL UNION ALL
SELECT 2, 'B', NULL FROM DUAL;
輸出:
ID 名稱 2 乙
或者,如果您的contact值可以是用空格填充的字串,那么:
SELECT id,
MAX(name) AS name
FROM table_name
GROUP BY id
HAVING COUNT(CASE LENGTH(TRIM(contact)) WHEN 7 THEN 1 END) = 0;
db<>在這里擺弄
uj5u.com熱心網友回復:
你有沒有嘗試過
SELECT *
FROM t1
WHERE t1.contact IS NULL OR length(trim(t1.contact)) = 0
uj5u.com熱心網友回復:
就像你會制定它一樣 - 選擇所有ID沒有 ( minus) 聯系的s
SELECT * FROM table_name WHERE ID in
(select id from table_name
minus
select id from table_name where contact is not null)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/407694.html
標籤:
