2016-11-26 2 views
0

Здесь я использую базу данных SAMPLE DB2.coalesce в базе данных примеров не работает

Я пытаюсь использовать coalesce для изменения нулевых значений в столбце MIDINIT таблицы EMPLOYEE, но я все еще получаю результат нулевых значений после запуска кода.

SELECT COALESCE (MIDINIT, 'XX') AS MIDINIT 
FROM EMPLOYEE; 

run result

+0

какая СУБД вы используете ..? – Mansoor

+0

IBM Data Studio –

ответ

1

, что ваша ошибка?

если MIDINIT не символ или VARCHAR (пример целое), ваш COALESCE заменить целое значение по значению полукокса и выбора системы SQL косяка типа

если MIDINIT не символ или VARCHAR вы должны быть

SELECT COALESCE (cast(MIDINIT as varchar(200)), 'XX') AS MIDINIT 
FROM EMPLOYEE; 

или если MIDINIT числовой

SELECT COALESCE (MIDINIT, 0) AS MIDINIT 
FROM EMPLOYEE; 

вы можете использовать IFNULL функцию для замены сливаются, если вы хотите (если MIDINIT это символ или VARCHAR):

SELECT ifnull(MIDINIT, 'XX') AS MIDINIT 
FROM EMPLOYEE; 
+0

на самом деле нет ошибки, но нулевые значения все еще присутствуют и не изменены на «XX» –

+0

, вы не уверены в его нулевом значении? Его не пустое значение? try: выберите nullif (cast (yourcolumn as varchar (200)), '') из вашей таблицы. – Esperento57

+0

try select '#' || trim (yourcolumn) || '#' из вашей таблицы, если результат равен ##, тогда ваш столбец не является нулевым. – Esperento57

Смежные вопросы