- DocumentDB SQL 教程
- DocumentDB SQL - 首頁
- DocumentDB SQL - 概述
- DocumentDB SQL - SELECT 語句
- DocumentDB SQL - FROM 語句
- DocumentDB SQL - WHERE 語句
- DocumentDB SQL - 運算子
- DocumentDB - BETWEEN 關鍵字
- DocumentDB SQL - IN 關鍵字
- DocumentDB SQL - VALUE 關鍵字
- DocumentDB SQL - ORDER BY 語句
- DocumentDB SQL - 迭代
- DocumentDB SQL - 連線
- DocumentDB SQL - 別名
- DocumentDB SQL - 陣列建立
- DocumentDB - 標量表達式
- DocumentDB SQL - 引數化
- DocumentDB SQL - 內建函式
- LINQ to SQL 轉換
- JavaScript 整合
- 使用者定義函式
- 複合 SQL 查詢
- DocumentDB SQL 有用資源
- DocumentDB SQL - 快速指南
- DocumentDB SQL - 有用資源
- DocumentDB SQL - 討論
DocumentDB SQL - 運算子
運算子是保留字或字元,主要用於 SQL WHERE 子句中執行操作(例如比較和算術運算)。DocumentDB SQL 也支援各種標量表達式。最常用的為**二元和一元表示式**。
以下 SQL 運算子目前受支援,並可用於查詢。
SQL 比較運算子
以下是 DocumentDB SQL 語法中所有可用比較運算子的列表。
| 序號 | 運算子和描述 |
|---|---|
| 1 | = 檢查兩個運算元的值是否相等。如果相等,則條件為真。 |
| 2 | != 檢查兩個運算元的值是否不相等。如果不相等,則條件為真。 |
| 3 | <> 檢查兩個運算元的值是否不相等。如果不相等,則條件為真。 |
| 4 | > 檢查左運算元的值是否大於右運算元的值。如果大於,則條件為真。 |
| 5 | < 檢查左運算元的值是否小於右運算元的值。如果小於,則條件為真。 |
| 6 | >= 檢查左運算元的值是否大於或等於右運算元的值。如果大於或等於,則條件為真。 |
| 7 | <= 檢查左運算元的值是否小於或等於右運算元的值。如果小於或等於,則條件為真。 |
SQL 邏輯運算子
以下是 DocumentDB SQL 語法中所有可用邏輯運算子的列表。
| 序號 | 運算子和描述 |
|---|---|
| 1 | AND AND 運算子允許在 SQL 語句的 WHERE 子句中存在多個條件。 |
| 2 | BETWEEN BETWEEN 運算子用於搜尋在給定最小值和最大值之間的一組值中的值。 |
| 3 | IN IN 運算子用於將一個值與已指定的文字值列表進行比較。 |
| 4 | OR OR 運算子用於組合 SQL 語句的 WHERE 子句中的多個條件。 |
| 5 | NOT NOT 運算子反轉與其一起使用的邏輯運算子的含義。例如,NOT EXISTS、NOT BETWEEN、NOT IN 等。這是一個否定運算子。 |
SQL 算術運算子
以下是 DocumentDB SQL 語法中所有可用算術運算子的列表。
| 序號 | 運算子和描述 |
|---|---|
| 1 | + **加法** - 將運算子兩側的值相加。 |
| 2 | - **減法** - 從左運算元中減去右運算元。 |
| 3 | * **乘法** - 將運算子兩側的值相乘。 |
| 4 | / **除法** - 將左運算元除以右運算元。 |
| 5 | % **模** - 將左運算元除以右運算元並返回餘數。 |
在本例中,我們也將考慮相同的文件。以下是**AndersenFamily**文件。
{
"id": "AndersenFamily",
"lastName": "Andersen",
"parents": [
{ "firstName": "Thomas", "relationship": "father" },
{ "firstName": "Mary Kay", "relationship": "mother" }
],
"children": [
{
"firstName": "Henriette Thaulow",
"gender": "female",
"grade": 5,
"pets": [ { "givenName": "Fluffy", "type": "Rabbit" } ]
}
],
"location": { "state": "WA", "county": "King", "city": "Seattle" },
"isRegistered": true
}
以下是**SmithFamily**文件。
{
"id": "SmithFamily",
"parents": [
{ "familyName": "Smith", "givenName": "James" },
{ "familyName": "Curtis", "givenName": "Helen" }
],
"children": [
{
"givenName": "Michelle",
"gender": "female",
"grade": 1
},
{
"givenName": "John",
"gender": "male",
"grade": 7,
"pets": [
{ "givenName": "Tweetie", "type": "Bird" }
]
}
],
"location": {
"state": "NY",
"county": "Queens",
"city": "Forest Hills"
},
"isRegistered": true
}
以下是**WakefieldFamily**文件。
{
"id": "WakefieldFamily",
"parents": [
{ "familyName": "Wakefield", "givenName": "Robin" },
{ "familyName": "Miller", "givenName": "Ben" }
],
"children": [
{
"familyName": "Merriam",
"givenName": "Jesse",
"gender": "female",
"grade": 6,
"pets": [
{ "givenName": "Charlie Brown", "type": "Dog" },
{ "givenName": "Tiger", "type": "Cat" },
{ "givenName": "Princess", "type": "Cat" }
]
},
{
"familyName": "Miller",
"givenName": "Lisa",
"gender": "female",
"grade": 3,
"pets": [
{ "givenName": "Jake", "type": "Snake" }
]
}
],
"location": { "state": "NY", "county": "Manhattan", "city": "NY" },
"isRegistered": false
}
讓我們來看一個簡單的示例,其中比較運算子用於 WHERE 子句。
在此查詢中,在 WHERE 子句中,指定了 (WHERE f.id = "WakefieldFamily") 條件,它將檢索 ID 等於 WakefieldFamily 的文件。
SELECT * FROM f WHERE f.id = "WakefieldFamily"
執行上述查詢後,它將返回 WakefieldFamily 的完整 JSON 文件,如下面的輸出所示。
[
{
"id": "WakefieldFamily",
"parents": [
{
"familyName": "Wakefield",
"givenName": "Robin"
},
{
"familyName": "Miller",
"givenName": "Ben"
}
],
"children": [
{
"familyName": "Merriam",
"givenName": "Jesse",
"gender": "female",
"grade": 6,
"pets": [
{
"givenName": "Charlie Brown",
"type": "Dog"
},
{
"givenName": "Tiger",
"type": "Cat"
},
{
"givenName": "Princess",
"type": "Cat"
}
]
},
{
"familyName": "Miller",
"givenName": "Lisa",
"gender": "female",
"grade": 3,
"pets": [
{
"givenName": "Jake",
"type": "Snake"
}
]
}
],
"location": {
"state": "NY",
"county": "Manhattan",
"city": "NY"
},
"isRegistered": false,
"_rid": "Ic8LAJFujgECAAAAAAAAAA==",
"_ts": 1450541623,
"_self": "dbs/Ic8LAA==/colls/Ic8LAJFujgE=/docs/Ic8LAJFujgECAAAAAAAAAA==/",
"_etag": "\"00000500-0000-0000-0000-567582370000\"",
"_attachments": "attachments/"
}
]
讓我們來看另一個示例,其中查詢將檢索等級大於 5 的子項資料。
SELECT * FROM Families.children[0] c WHERE (c.grade > 5)
執行上述查詢後,它將檢索以下子文件,如輸出所示。
[
{
"familyName": "Merriam",
"givenName": "Jesse",
"gender": "female",
"grade": 6,
"pets": [
{
"givenName": "Charlie Brown",
"type": "Dog"
},
{
"givenName": "Tiger",
"type": "Cat"
},
{
"givenName": "Princess",
"type": "Cat"
}
]
}
]