sql - 如何在 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 代码的一部分。
解决方案
您应该能够使用接近您的第二个版本的东西,但稍微调整如下:
+ ',"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 对象。
推荐阅读
- php - Google 照片 api 的身份验证范围错误
- python - 使用 OpenPyXL 复制工作表不会保留数据验证
- ios - Firebase 通知限制 iOS
- azure - 在 Azure 资源管理器 (ARM) 中从 KV 安装多个版本的证书
- powershell - Chef infra config 的 Powershell 问题:动态值
- python - 使用 Tkinter (Python) 在 Canvas 上绘制、调整大小和移动三角形
- node.js - 节点和 elasticSearch 客户端 - 客户端注意到服务器不是 Elasticsearch 支持的发行版
- excel - 如何取消“Application.OnTime Now + TimeValue”
- html - 在 angular10 中允许使用 latin1 字符作为输入
- haskell - 如果 a 有 Monoid,是否可以为 Identity a 编写 Alternative 实例?