CREATE TABLE EMP(E_ID INT,E_NAME VARCHAR(20),GENDER VARCHAR(20),CONTACT INT,AGE INT);
INSERT INTO EMP VALUES(1001,'ABC','MALE',NULL,NULL),(1001,'ABC',NULL,8989,NULL),(1001,'ABC',NULL,NULL,28);
我試過以下查詢..但不起作用..
SELECT A.E_ID, B.E_NAME, B.GENDER, B.CONTACT, B.AGE FROM EMP AS A INNER JOIN ENT AS B ON A.E_ID = B.E_ID AND A.E_NAME = B.E_NAME AND A.GENDER = B.GENDER AND A.CONTACT = A.CONTACT where A.CONTACT IS NOT NULL;
員工表
1 : https://i.stack.imgur.com/0H8EW.png**如何獲得非空值的單行輸出?**
預期產出
uj5u.com熱心網友回復:
MAX()不會包括NULLs. 試試這個:
SELECT
e_id,
e_name,
MAX(gender) as gender,
MAX(age) as age,
MAX(contact) as contact
FROM employee
GROUP BY e_id, e_name
注意:如果有 1 個以上的非空值,請相應地調整代碼。否則你可能最終會考慮錯誤的。
查看db<>fiddle中的示例輸出
uj5u.com熱心網友回復:
聚合函式,如maxignore nulls,所以一個可能的技巧是按e_idand分組e_name,并應用于max其他列:
SELECT e_id, e_name, MAX(gender), MAX(contact), MAX(age)
FROM employee
GROUP BY e_id, e_name
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/391561.html
標籤:sql sql-server
上一篇:在d3中獲取featureCollection的邊界
下一篇:查詢在1個主列上呼叫2個外鍵
