DocumentDB SQL – 标量表达式
DocumentDB SQL – 标量表达式
在 DocumentDB SQL 中,SELECT 子句还支持常量、算术表达式、逻辑表达式等标量表达式。通常,标量查询很少使用,因为它们实际上并不查询集合中的文档,它们只是对表达式求值。但是使用标量表达式查询来学习基础知识、如何在查询中使用表达式和塑造 JSON 仍然很有帮助,这些概念直接适用于您将针对集合中的文档运行的实际查询。
让我们看一个包含多个标量查询的示例。
在查询资源管理器中,只选择要执行的文本,然后单击“运行”。让我们运行第一个。
SELECT "Hello"
执行上述查询时,会产生以下输出。
[ { "$1": "Hello" } ]
这个输出可能看起来有点混乱,所以让我们分解它。
-
首先,正如我们在上一个演示中看到的,查询结果总是包含在方括号中,因为它们是作为 JSON 数组返回的,即使是像这样只返回单个文档的标量表达式查询的结果。
-
我们有一个包含一个文档的数组,并且该文档中有一个属性用于 SELECT 语句中的单个表达式。
-
SELECT 语句不提供此属性的名称,因此 DocumentDB 使用 $1 自动生成一个。
-
这通常不是我们想要的,这就是为什么我们可以使用 AS 为查询中的表达式设置别名,在此示例中,它按照您希望的方式设置生成文档中的属性名称,即 word。
SELECT "Hello" AS word
执行上述查询时,会产生以下输出。
[ { "word": "Hello" } ]
同样,下面是另一个简单的查询。
SELECT ((2 + 11 % 7)-2)/3
该查询检索以下输出。
[ { "$1": 1.3333333333333333 } ]
让我们看另一个塑造嵌套数组和嵌入对象的例子。
SELECT { "words1": ["Hello", "World"], "words2": ["How", "Are", "You?"] } AS allWords
执行上述查询时,会产生以下输出。
[ { "allWords": { "words1": [ "Hello", "World" ], "words2": [ "How", "Are", "You?" ] } } ]