Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SELECT yan tümcesi, sorgu sonuçlarında döndürülecek alanları tanımlar. Yan tümcesi daha sonra bu alanları JSON sonuç kümesine projeler.
Her sorgu ANSI SQL standartlarına göre bir SELECT yan tümceden ve isteğe bağlı olarak FROM ve WHERE yan tümcelerinden oluşur. Genellikle yan tümcesindeki FROM kaynak numaralandırılır ve WHERE yan tümcesi, JSON öğelerinin bir alt kümesini almak için kaynağa bir filtre uygular.
Sözdizimi
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 |
Sonuç kümesi için seçilecek özellikler veya değer. |
* |
Herhangi bir değişiklik yapmadan değerin alınması gerektiğini belirtir. Özellikle işlenen değer bir nesneyse, tüm özellikler alınır. |
object_property_list |
Alınacak özelliklerin listesini belirtir. Döndürülen her değer, belirtilen özelliklere sahip bir nesnedir. |
VALUE |
JSON değerinin tam JSON nesnesi yerine alınması gerektiğini belirtir. Bu bağımsız değişken, property_list> aksine <nesnedeki öngörülen değeri sarmalamaz. |
DISTINCT |
Öngörülen özelliklerin yinelenenlerinin kaldırılması gerektiğini belirtir. |
scalar_expression |
Hesaplanacak değeri temsil eden ifade. |
Dönüş türleri
Belirtilen öngörülen alanları veya değerleri döndürür.
Örnekler
Bu bölüm, bu sorgu dili yapısının nasıl kullanılacağına örnekler içerir.
Statik dize değerlerini seçme
Bu örnekte iki statik dize değeridir ve her iki değeri de içeren tek bir nesneye sahip bir dizi döndürür. Değerler adlandırılmadığından, eşdeğer json alanını adlandırmak için sıralı bir sayı kullanılır.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Proje alanları
Bu örnekte JSON projeksiyonu, sonuçta elde edilen JSON nesnesi için tam yapı ve alan adlarında ince ayar yapmak için kullanılır. Burada ve modeladlı identifier alanlarla bir JSON nesnesi oluşturulur. Dış JSON nesnesi hala adlandırılmamış olduğundan, bu alanı adlandırmak için oluşturulan bir sayı ($1) kullanılır.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Proje statik dizesi
Bu örnekte VALUE anahtar sözcüğü statik bir dizeyle birlikte kullanılarak sonuç olarak dize dizisi oluşturulur.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Karmaşık projeksiyon
Bu örnekte sorgu, istemcinin ayrıştırmak için JSON SELECT nesnesine dönüştürülen sonuçları içeren ortak bir sorgu gerçekleştirmek üzere bir yan tümcesi VALUE , anahtar sözcüğü, yan FROM tümcesi ve JSON projeksiyonunun birleşimini kullanır.
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"
},
...
]
Açıklamalar
- Söz
SELECT *dizimi yalnızca yan tümcesi tam olarak bir diğer ad bildirmişseFROMgeçerlidir.SELECT *bir kimlik projeksiyonu sağlar. Bu projeksiyon gerekli değilse yararlı olabilir.SELECT *yalnızca yan tümcesi belirtilirse ve yalnızca tek bir giriş kaynağı sunulursaFROMgeçerlidir. - Hem hem
SELECT *deSELECT <select_list>söz dizimsel şekerdir ve basitSELECTifadeler kullanılarak ifade edilebilir. - ifadesi
SELECT * FROM ... AS from_alias ...ileSELECT from_alias FROM ... AS from_alias ...eşdeğerdir. - ifadesi
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]ileSELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...]eşdeğerdir.