首页 > 解决方案 > 如何在 SQL 中将 NULL 连接为字符串的一部分

问题描述

我正在使用 SQL Server 2008。我必须以 JSON 格式从中获取数据。我正在使用如下所示的连接方法。以下代码将 NULL 值替换为空字符串。相反,我想将其设为 NULL。

+ ',"OrderDate":"' + CASE WHEN orderDate IS NULL THEN 
 '' ELSE CONVERT(varchar(23), orderDate, 20) END + '"}'

orderDate 为 null 时的输出为:“OrderDate”:“”。相反,我想将其设为“OrderDate”:NULL。我努力了,

+ ',"OrderDate":' + CASE WHEN orderDate IS NULL THEN 
 NULL ELSE CONVERT(varchar(23), orderDate, 20) END + '}'

我也试过,

+ ',"OrderDate":' + CAST(CASE WHEN orderDate IS NULL 
THEN NULL ELSE CONVERT(varchar(23), orderDate, 20) END AS 
VARCHAR) + '}'

但是 JSON 本身却是 NULL。我上面提到的代码片段是更大的 JSON 创建 SQL 代码的一部分。

标签: sqljsonsql-server

解决方案


您应该能够使用接近您的第二个版本的东西,但稍微调整如下:

+ ',"OrderDate":' + CASE WHEN orderDate IS NULL THEN 
'null' ELSE CONVERT(varchar(23), orderDate, 20) END + '}'

这将使您的 JSON 格式正确,如下所示(或 JSON 片段):

{"OrderDate":null}

每当您在 javascript 中使用 JSON 对象时,如果遇到问题,您始终可以将 JSON 字符串传递给该JSON.parse()方法,该方法将构建由您的 JSON 字符串描述的 JavaScript 对象。


推荐阅读