Есть ли разница между NULL и пустой строкой

Мы загружаем данные в CRM через SSIS, и наша база данных содержит нули в строковых столбцах. Нам нужно определить, как с ними обращаться, и если нет никакой разницы между пустой строкой и нулем в CRM, мы бы предпочли рассматривать нули как пустые строки.

Содержит ли CRM пустые значения? Есть ли практическая разница между нулями и пустыми строками в CRM?

РЕДАКТИРОВАТЬ: Хорошо, я понял наоборот - когда мы сохраняем пустые строки в CRM, в результате мы получаем NULL - хранит ли CRM пустые строки как нули, или это просто странность без коннектора SSIS ?


person Jeff    schedule 28.09.2015    source источник
comment
Да, есть разница между NULL и ""...   -  person nhgrif    schedule 29.09.2015
comment
@nhgrif, так что это просто странность с нашим соединителем, из-за которой он либо преобразует пустые строки в нуль при вставке в CRM, либо при загрузке из CRM?   -  person Jeff    schedule 29.09.2015
comment
В MySQL вставка "" в поле со значением по умолчанию NULL, поле становится "" - пустая строка.   -  person Tpojka    schedule 29.09.2015
comment
@Tpojka Да, я знаю, как значения по умолчанию работают в MySQL - обратите внимание, что этот вопрос касается Dynamics CRM Online; он ведет себя не так, как я ожидал бы от нулей, исходя из моего опыта разработчика .net, web и SQL.   -  person Jeff    schedule 29.09.2015
comment
@Tpojka Вставка "" в поле => поле становится "". Он делает то, что вы ему говорите. Ничего общего с NULL или значениями по умолчанию.   -  person user207421    schedule 29.09.2015
comment
В зависимости от того, как вы подключаетесь к CRM, я считаю, что он будет возвращать нули для пустых строковых значений.   -  person Daryl    schedule 30.09.2015
comment
при манипулировании значениями с помощью REST API я обнаружил, что пустые значения всегда возвращаются как null, вне зависимости от того, вводите ли вы их как null или как пустую строку. Такого поведения не происходит на базовом SQL-сервере (хотя, как ни странно, это происходит в Oracle RDB — возможно, Dynamics использует Oracle за кулисами!!)   -  person Andy    schedule 26.01.2021


Ответы (2)


CRM, по-видимому, хранит пустые строки как null.

Запустил несколько тестов, создав записи через веб-службу SOAP, а затем проверив SQL, который, кажется, подтверждает это.

введите здесь описание изображения

person James Wood    schedule 29.09.2015
comment
Привет, спасибо, что не только провел для меня несколько тестов (я очень мало знаю о CRM в Интернете, насколько я знаю, там нет способа воспроизвести этот тест, и у меня действительно нет опыта для этого ...), но также и за фактическое чтение моего вопроса. - person Jeff; 29.09.2015
comment
@ Джефф, ты прав, я провел этот тест на предпосылке. Невозможно запустить этот точный тест онлайн, поскольку вы не можете получить доступ к базе данных (легко - я думаю, что Microsoft предоставит базу данных по запросу). - person James Wood; 29.09.2015
comment
Я использую веб-API (также известный как Common Data Services), и я могу подтвердить, что это также имеет такое же поведение - если вы установите для текстового поля пустую строку при обновлении объекта, для него будет установлено значение null при извлечении - person Andy; 21.07.2020

О, да! Существует абсолютное различие между нулевой и пустой строкой. Например: у вас есть переменная с именем x. Если вы пишете в JS, var x = ""; это означает, что вы присвоили значение, которое является пустой строкой (длина равна 0). На самом деле это похоже на что-то, но это ничего не значит :) С другой стороны, var y = null; это означает, что вы не присвоили значение y, которое ясно указано, записав null в y во время объявления. Если вы напишете y.length;, будет выдана ошибка, указывающая, что значение y не присвоено, и в результате невозможно прочитать длину y.

person Rashed Rahat    schedule 30.01.2020
comment
Привет, Рашед, я хорошо знаю, в чем разница между нулем и пустой строкой в ​​целом, но это был вопрос о CRM, в частности, где кажется, что они не делают различия. - person Jeff; 30.01.2020