Вы ищете IFNULL()
?
Пример данных
CREATE TABLE SAMPLE(ID INT, SAL INT);
INSERT INTO SAMPLE VALUES(1,1000);
INSERT INTO SAMPLE VALUES(1,2000);
INSERT INTO SAMPLE VALUES(2,'3000');
INSERT INTO SAMPLE VALUES(2,'1000');
INSERT INTO SAMPLE VALUES(3,NULL);
---------NEW SAMPLE BASED ON COMMENT---------
INSERT INTO SAMPLE VALUES(3,NULL);
INSERT INTO SAMPLE VALUES(3,'MYTEXT');
INSERT INTO SAMPLE VALUES(3,500);
INSERT INTO SAMPLE VALUES(4,'MYTEXT2');
INSERT INTO SAMPLE VALUES(4,'MYTEXT3');
INSERT INTO SAMPLE VALUES(4,10.2);
INSERT INTO SAMPLE VALUES(5,NULL);
INSERT INTO SAMPLE VALUES(5,NULL);
Если я правильно понял, для вышеуказанных данных вы ожидаете результат, как показано ниже.
+----+------------+
| ID | SUM_RESULT |
+----+------------+
| 1 | 3000 |
+----+------------+
| 2 | 4000 |
+----+------------+
| 3 | N/A |
+----+------------+
В этом случае вы можете использовать
SELECT ID,
IFNULL(SUM(SAL),'N/A') AS SUM_RESULT
FROM SAMPLE GROUP BY ID
ПРОВЕРИТЬ ДЕМО ЗДЕСЬ
ОБНОВЛЕНИЕ НА ОСНОВЕ КОММЕНТАРИИ:
Вы можете использовать приведенный ниже запрос, если хотите отобразить сообщение об ошибке, если группа содержит какой-либо текст.
select ID,
CASE WHEN
MAX(CASE WHEN SAL REGEXP ('^[0-9]+$') THEN SAL ELSE 'N/A' END) !='N/A'
THEN
SUM(SAL)
ELSE 'NOT SUMMABLE' END AS MYRESULT
FROM SAMPLE
GROUP BY ID
OUTPUT
+----+--------------+
| ID | MYRESULT |
+----+--------------+
| 1 | 3000 |
| 2 | 4200 |
| 3 | NOT SUMMABLE |
| 4 | NOT SUMMABLE |
| 5 | NOT SUMMABLE |
+----+--------------+
ПРОВЕРЬТЕ ДЕМО ЗДЕСЬ