Condividi tramite


Clausola WHERE (query NoSQL)

SI APPLICA A: NoSQL

La clausola facoltativa WHERE (WHERE <filter_condition>) specifica le condizioni che gli elementi JSON di origine devono soddisfare affinché la query li includa nei risultati. Per essere considerato per il risultato, un elemento JSON deve valutare le condizioni specificate come true. Il livello di indice usa la WHERE clausola per determinare il sottoinsieme più piccolo di elementi di origine che possono far parte del risultato.

Sintassi

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
Descrizione
<filter_condition> Specifica la condizione da soddisfare per la restituzione degli elementi.
<scalar_expression> Espressione che rappresenta il valore da calcolare.

Nota

Per altre informazioni sulle espressioni scalari, vedere Espressioni scalari

Esempi

Questo primo esempio usa una semplice query di uguaglianza per restituire un subset di elementi. L'operatore = viene usato con la WHERE clausola per creare un filtro basato su un'uguaglianza semplice.

SELECT VALUE {
    employeeName: e.name,
    currentTeam: e.team
}
FROM
    employees e
WHERE
    e.team = "Hospitality"
[
  {
    "employeeName": "Jordan Mitchell",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Ashley Schroeder",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Tomas Richardson",
    "currentTeam": "Hospitality"
  }
]

In questo esempio successivo un filtro più complesso è costituito da espressioni scalari.

SELECT VALUE {
    employeeName: e.name,
    vacationDaysRemaining: e.vacationDays
}
FROM
    employees e
WHERE
    e.vacationDays >= 7
[
  {
    "employeeName": "Ana Bowman",
    "vacationDaysRemaining": 10
  },
  {
    "employeeName": "Madison Butler",
    "vacationDaysRemaining": 7
  }
]

In questo esempio finale viene utilizzato come filtro un riferimento a una proprietà booleana.

SELECT VALUE {
    employeeName: e.name,
    isPartTime: e.partTime
}
FROM
    employees e
WHERE
    e.partTime
[
  {
    "employeeName": "Riley Ramirez",
    "isPartTime": true
  },
  {
    "employeeName": "Caleb Foster",
    "isPartTime": true
  }
]

Osservazioni:

  • Affinché venga restituito un elemento, un'espressione specificata come condizione di filtro deve restituire true. Solo il valore true booleano soddisfa la condizione, qualsiasi altro valore: undefined, null, false, un numero scalare, una matrice o un oggetto non soddisfa la condizione.

  • Se si include la chiave di partizione nella WHERE clausola come parte di un filtro di uguaglianza, la query filtra automaticamente solo le partizioni pertinenti.

  • È possibile usare i seguenti operatori binari supportati:

    Operatori Esempi
    Aritmetico +,-,*,/,%
    Bit per bit \|^, &, <<, >>( >>> spostamento a destra di riempimento zero)
    Logico AND, OR, NOT
    Confronto =, !=, <, ><=, , >=<>
    Stringa \|\|(concatenazione)