【发布时间】:2022-01-04 01:57:35
【问题描述】:
我的示例代码是这样的:
DECLARE @JsonText varchar(MAX) = '{
"Test": ""
}'
DECLARE @Name varchar(MAX) = JSON_VALUE(@JsonText, '$.Test') ;
IF (@Name IS NULL)
BEGIN
SELECT 'Null' AS Result
END
ELSE
BEGIN
SELECT 'Empty' AS Result
END
我得到了一个输出:
Result
----------
Empty
我的预期输出是 Null,我尝试使用 trim,然后检查字符串是否为空,然后返回 null 工作正常。
IF (@Result = '')
SET @Result = NULL;
但我正在寻找任何其他替代方案(如果可用)返回 null 而不是空。
【问题讨论】:
-
如果您希望该值为
NULL,则在您的JSON 中定义该值为Null。Null和""是 not 相同的值,就像NULL和''不是一样。 -
你能解释一下为什么你想要NULL吗? NULL 表示 unknown 但它不是未知的 - 它是空字符串。
标签: sql-server stored-procedures sql-function