Добавление пробела к полю FLOAT дает мне 0, а не '' (пробел) - PullRequest
1 голос
/ 16 января 2012
UPDATE tablex 
set Deal Number= '  '
where Deal Number is null 

Попытка сделать поле имеющим '' (пробел). Вместо этого ноль становится 0.

Как мне получить то, что я хочу здесь?

Ответы [ 3 ]

4 голосов
/ 16 января 2012

Ваше поле имеет числовой тип (с плавающей точкой), что означает, что вы не можете присвоить ему пустую строку или пробел. Когда вы пытаетесь, то конвертация становится 0 по умолчанию.

Вы можете попробовать установить его в null (если это разрешено вашим DDL) или, если вы действительно хотите иметь возможность назначать пробелы, вы можете сделать поле типом varchar и выполнять преобразования, когда вам нужно его вычислить. Это не рекомендуется, хотя. Лучше иметь дело с нулевым значением. (Я предполагаю, что вы хотите отобразить «ничего» в клиентском приложении, когда в поле нет значения.)

1 голос
/ 16 января 2012

Нельзя задать для числового поля пустую строку , поскольку пустая строка является строкой .

Измените тип данных или измените слой приложения / дисплея, чтобы отображать '' вместо 0.

0 голосов
/ 16 января 2012

Пустые строки (пустые строки в соответствии со стандартом ANSI), преобразованные в числовые, дают 0.

Вместо этого используйте тип nvarchar (n), если float для хранения строк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...