Как использовать NULLIF с OPENJSON для замены пустых строк?

#tsql #sql-server-2019

#tsql #sql-сервер-2019

Вопрос:

Я пытаюсь читать из строки JSON, но там, где существуют пустые значения, мне нужно заменить значение NULL в SQL. Я пробовал NULLIF, но получил синтаксическую ошибку. Примеры в Интернете, похоже, имеют дело только с заменой значений JSON при обратной записи в JSON, а не при чтении.

 SELECT   js.* INTO  #StringValues FROM   OPENJSON (@myJsonString, N'

Возможно ли создать нулевые значения при чтении из JSON?


Комментарии:

1. Делай это в своем SELECT , а не в WITH своем . Если бы вы не использовали SELECT * это, это было бы тривиально.

2. Обратите внимание, что JSON NULL также поддерживает значения. Если у вас есть JSON и вы хотите "" быть NULL значениями, то на самом деле вы должны определять их как Null в своем JSON.

3. Да, полностью согласен. Это исходит из внешнего источника, поэтому я не могу контролировать пустые значения, даже если они не должны существовать.

4. Делать SELECT так, как вы советуете, отлично, спасибо. Пожалуйста, перейдите к ответу, и я приму его.

) WITH ( Foo nvarchar(50) N'$.Foo ' ,Bar nvarchar(250) NULLIF(N'$.Bar', N'') -- Syntax error ) AS js Возможно ли создать нулевые значения при чтении из JSON?

Комментарии:

1. Делай это в своем SELECT , а не в WITH своем . Если бы вы не использовали SELECT * это, это было бы тривиально.

2. Обратите внимание, что JSON NULL также поддерживает значения. Если у вас есть JSON и вы хотите "" быть NULL значениями, то на самом деле вы должны определять их как Null в своем JSON.

3. Да, полностью согласен. Это исходит из внешнего источника, поэтому я не могу контролировать пустые значения, даже если они не должны существовать.

4. Делать SELECT так, как вы советуете, отлично, спасибо. Пожалуйста, перейдите к ответу, и я приму его.