DocumentDB SQL - Espressioni scalari

In DocumentDB SQL, la clausola SELECT supporta anche espressioni scalari come costanti, espressioni aritmetiche, espressioni logiche, ecc. Normalmente, le query scalari vengono utilizzate raramente, perché in realtà non interrogano i documenti nella raccolta, ma valutano solo le espressioni. Tuttavia, è comunque utile utilizzare query di espressioni scalari per apprendere le nozioni di base, come utilizzare espressioni e modellare JSON in una query e questi concetti si applicano direttamente alle query effettive che verranno eseguite sui documenti in una raccolta.

Diamo un'occhiata a un esempio che contiene più query scalari.

In Query Explorer, seleziona solo il testo da eseguire e fai clic su "Esegui". Eseguiamo questo primo.

SELECT "Hello"

Quando la query precedente viene eseguita, produce il seguente output.

[ 
   { 
      "$1": "Hello" 
   } 
]

Questo output può sembrare un po 'confuso, quindi analizziamolo.

  • Innanzitutto, come abbiamo visto nell'ultima demo, i risultati delle query sono sempre contenuti tra parentesi quadre perché vengono restituiti come un array JSON, anche i risultati di query di espressioni scalari come questa che restituisce solo un singolo documento.

  • Abbiamo un array con un documento in esso e quel documento ha una singola proprietà in esso per la singola espressione nell'istruzione SELECT.

  • L'istruzione SELECT non fornisce un nome per questa proprietà, quindi DocumentDB ne genera automaticamente uno utilizzando $ 1.

  • Questo di solito non è quello che vogliamo, motivo per cui possiamo usare AS per alias l'espressione nella query, che imposta il nome della proprietà nel documento generato nel modo in cui vorresti che fosse, word, in questo esempio.

SELECT "Hello" AS word

Quando la query precedente viene eseguita, produce il seguente output.

[ 
   { 
      "word": "Hello" 
   } 
]

Allo stesso modo, la seguente è un'altra semplice query.

SELECT ((2 + 11 % 7)-2)/3

La query recupera il seguente output.

[ 
   { 
      "$1": 1.3333333333333333 
   } 
]

Diamo un'occhiata a un altro esempio di modellazione di array annidati e oggetti incorporati.

SELECT 
   { 
      "words1": 
         ["Hello", "World"], 
      "words2": 
         ["How", "Are", "You?"] 
   } AS allWords

Quando la query precedente viene eseguita, produce il seguente output.

[ 
   { 
      "allWords": { 
         "words1": [ 
            "Hello", 
            "World" 
         ],
			
         "words2": [ 
            "How", 
            "Are", 
            "You?" 
         ] 
      } 
   } 
]