Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klauzula SELECT identyfikuje pola, które mają być zwracane w wynikach zapytania. Klauzula następnie projektuje te pola w zestawie wyników JSON.
Każde zapytanie składa się z SELECT klauzuli i opcjonalnie FROM i WHERE klauzul zgodnie ze standardami ANSI SQL. Zazwyczaj źródło w klauzuli FROM jest wyliczane, a WHERE klauzula stosuje filtr w źródle w celu pobrania podzestawu elementów JSON.
Składnia
SELECT <select_specification>
<select_specification> ::=
'*'
| [DISTINCT] <object_property_list>
| [DISTINCT] VALUE <scalar_expression> [[ AS ] value_alias]
<object_property_list> ::=
{ <scalar_expression> [ [ AS ] property_alias ] } [ ,...n ]
Arguments
| Description | |
|---|---|
select_specification |
Właściwości lub wartość do wybrania dla zestawu wyników. |
* |
Określa, że wartość powinna zostać pobrana bez wprowadzania żadnych zmian. W szczególności, jeśli przetworzona wartość jest obiektem, wszystkie właściwości są pobierane. |
object_property_list |
Określa listę właściwości do pobrania. Każda zwrócona wartość jest obiektem z określonymi właściwościami. |
VALUE |
Określa, że należy pobrać wartość JSON zamiast kompletnego obiektu JSON. Ten argument, w przeciwieństwie do <property_list> , nie opakowuje przewidywanej wartości w obiekcie. |
DISTINCT |
Określa, że należy usunąć duplikaty przewidywanych właściwości. |
scalar_expression |
Wyrażenie reprezentujące wartość do obliczenia. |
Typy zwracane
Zwraca przewidywane pola lub wartości zgodnie z określonymi.
Przykłady
Ta sekcja zawiera przykłady użycia tej konstrukcji języka zapytań.
Wybieranie wartości statycznych ciągów
W tym przykładzie dwie statyczne wartości ciągu i zwraca tablicę z pojedynczym obiektem zawierającym obie wartości. Ponieważ wartości nie są nazwane, generowana sekwencyjnie liczba jest używana do nazywania równoważnego pola json.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Pola projektu
W tym przykładzie projekcja JSON służy do dokładnego dostrajania dokładnych nazw struktur i pól dla wynikowego obiektu JSON. W tym miejscu obiekt JSON jest tworzony z polami o nazwach identifier i model. Zewnętrzny obiekt JSON jest nadal nienazwany, więc wygenerowany numer ($1) jest używany do nadawania nazwy temu polu.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Ciąg statyczny projektu
W tym przykładzie słowo kluczowe VALUE jest używane z ciągiem statycznym w celu utworzenia tablicy ciągów w wyniku.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Projekcja złożona
W tym przykładzie zapytanie używa kombinacji klauzuli, VALUE słowa kluczowegoSELECT, FROM klauzuli i projekcji JSON, aby wykonać typowe zapytanie z wynikami przekształconymi w obiekt JSON, aby klient był analizowany.
SELECT VALUE {
name: p.name,
link: p.metadata.link,
firstTag: p.tags[0]["value"]
}
FROM
products p
[
{
"name": "Remdriel Shoes",
"link": "https://www.adventure-works.com/remdriel-shoes/68719521615.p",
"firstTag": "suede-leather-and-mesh"
},
{
"name": "Tirevy trunks",
"link": "https://www.adventure-works.com/tirevy-trunks/68719520573.p",
"firstTag": "polyester"
},
...
]
Uwagi
- Składnia jest prawidłowa tylko wtedy, gdy
FROMklauzulaSELECT *zadeklarowała dokładnie jeden alias.SELECT *zapewnia projekcję tożsamości, która może być przydatna, jeśli nie jest wymagana projekcja.SELECT *jest prawidłowy tylko wtedy, gdyFROMokreślono klauzulę i wprowadzono tylko jedno źródło wejściowe. - Zarówno
SELECT <select_list>iSELECT *są cukrem składniowym i można je wyrazić przy użyciu prostychSELECTinstrukcji. - Wyrażenie
SELECT * FROM ... AS from_alias ...jest równoważne .SELECT from_alias FROM ... AS from_alias ... - Wyrażenie
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]jest równoważne .SELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...]