#sql #sql-server #database
Вопрос:
Я хочу преобразовать нулевые данные в пустую строку. Как я могу это сделать?
Вот скриншот моей колонки, все они пусты.
Вот мой код хранимой процедуры;
ISNULL(CustomerStatusId, '') AS StatusId
И вот скриншот моего сайта, все они равны нулю.
Комментарии:
1. Если это числовой столбец, то пустая строка будет отображаться как
0
….2. какой тип данных может отображаться как пустая строка? Я могу изменить тип данных.
3. Скорее всего, веревочка …..
4. Что происходит, когда вы возвращаетесь только
CustomerStatusId
на свой сайт?5. Это возврат «неопределенный»
Ответ №1:
Проблема в том, что столбец имеет какой-то числовой тип. Вам необходимо преобразовать в строковое значение, даже если это значение равно NULL
:
COALESCE(CAST(CustomerStatusId as VARCHAR(255)), '') AS StatusId
Комментарии:
1. Теперь я снова получаю «Ноль». кстати, тип данных столбцов-int.
2. @miracdogan . . . Это действительно невозможно с SQL Server.
3. Я думаю, что речь идет о типе данных столбцов.
4. @miracdogan . . . Если вы храните это в таблице, вы не можете хранить строковое значение в столбце с числовым типом данных.
5. Итак, как я могу распечатать данные типа varchar пустыми? Что бы ни было записано в базе данных, я хочу, чтобы это было строкой empry.
Ответ №2:
Если значение вашего столбца равно 0, то вместо IsNull, пожалуйста, используйте NULLIF
и Coalesce()
. NULLIF(CustomerStatusId,0) вернет значение null, которое будет заменено на Coalesce() с «.
Coalesce(nullif(CustomerStatusId,0), '') AS StatusId
Комментарии:
1. Я снова получаю 0. Вероятно, о типе столбца даты.