DocumentDB SQL - Expresiones escalares
En DocumentDB SQL, la cláusula SELECT también admite expresiones escalares como constantes, expresiones aritméticas, expresiones lógicas, etc. Normalmente, las consultas escalares rara vez se utilizan, porque en realidad no consultan documentos en la colección, solo evalúan expresiones. Pero sigue siendo útil usar consultas de expresiones escalares para aprender los conceptos básicos, cómo usar expresiones y dar forma a JSON en una consulta, y estos conceptos se aplican directamente a las consultas reales que ejecutará en los documentos de una colección.
Echemos un vistazo a un ejemplo que contiene varias consultas escalares.
En el Explorador de consultas, seleccione solo el texto que se ejecutará y haga clic en 'Ejecutar'. Ejecutemos este primero.
SELECT "Hello"
Cuando se ejecuta la consulta anterior, produce el siguiente resultado.
[
{
"$1": "Hello"
}
]
Esta salida puede parecer un poco confusa, así que analicémosla.
Primero, como vimos en la última demostración, los resultados de las consultas siempre están entre corchetes porque se devuelven como una matriz JSON, incluso los resultados de consultas de expresiones escalares como esta que solo devuelve un único documento.
Tenemos una matriz con un documento y ese documento tiene una propiedad única para la expresión única en la instrucción SELECT.
La instrucción SELECT no proporciona un nombre para esta propiedad, por lo que DocumentDB genera automáticamente uno usando $ 1.
Por lo general, esto no es lo que queremos, por lo que podemos usar AS para asignar un alias a la expresión en la consulta, que establece el nombre de la propiedad en el documento generado de la forma que le gustaría que fuera, palabra, en este ejemplo.
SELECT "Hello" AS word
Cuando se ejecuta la consulta anterior, produce el siguiente resultado.
[
{
"word": "Hello"
}
]
De manera similar, la siguiente es otra consulta simple.
SELECT ((2 + 11 % 7)-2)/3
La consulta recupera el siguiente resultado.
[
{
"$1": 1.3333333333333333
}
]
Echemos un vistazo a otro ejemplo de cómo dar forma a matrices anidadas y objetos incrustados.
SELECT
{
"words1":
["Hello", "World"],
"words2":
["How", "Are", "You?"]
} AS allWords
Cuando se ejecuta la consulta anterior, produce el siguiente resultado.
[
{
"allWords": {
"words1": [
"Hello",
"World"
],
"words2": [
"How",
"Are",
"You?"
]
}
}
]