Skip to content

Commit 303acdb

Browse files
github-actions[bot]Chasen-Zhang
authored andcommitted
💬Generate LLM translations
1 parent 204fad7 commit 303acdb

File tree

17 files changed

+278
-213
lines changed

17 files changed

+278
-213
lines changed

docs/cn/sql-reference/10-sql-commands/20-query-syntax/01-query-select.md

Lines changed: 56 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
---
22
title: SELECT
33
---
4-
54
import FunctionDescription from '@site/src/components/FunctionDescription';
65

7-
<FunctionDescription description="引入或更新于:v1.2.234"/>
6+
<FunctionDescription description="引入或更新: v1.2.435"/>
87

98
import DetailsWrap from '@site/src/components/DetailsWrap';
109

@@ -16,13 +15,14 @@ import DetailsWrap from '@site/src/components/DetailsWrap';
1615
[WITH]
1716
SELECT
1817
[ALL | DISTINCT]
19-
<select_expr> | <col_name> [[AS] <alias>] | $<col_position> [, ...] |
18+
[ TOP <n> ]
19+
<select_expr> | <col_name> [[AS] <alias>] | $<col_position> [, ...] |
2020
COLUMNS <expr>
2121
[EXCLUDE (<col_name1> [, <col_name2>, <col_name3>, ...] ) ]
2222
[FROM table_references]
2323
[AT ...]
2424
[WHERE <expr>]
25-
[GROUP BY {{<col_name> | <expr> | <col_alias> | <col_position>},
25+
[GROUP BY {{<col_name> | <expr> | <col_alias> | <col_position>},
2626
... | <extended_grouping_expr>}]
2727
[HAVING <expr>]
2828
[ORDER BY {<col_name> | <expr> | <col_alias> | <col_position>} [ASC | DESC],
@@ -31,10 +31,9 @@ SELECT
3131
[OFFSET <row_count>]
3232
[IGNORE_RESULT]
3333
```
34+
- SELECT 语句还允许您直接查询暂存文件。有关语法和示例,请参阅 [使用 Databend 高效数据转换](/guides/load-data/transform/querying-stage)
3435

35-
- SELECT 语句还允许您直接查询 Stage 文件。有关语法和示例,请参见 [使用 Databend 进行高效数据转换](/guides/load-data/transform/querying-stage)
36-
37-
- 在本页的示例中,使用了表 `numbers(N)` 进行测试,它有一个单独的 UInt64 列(名为 `number`),包含从 0 到 N-1 的整数。
36+
- 在本页的示例中,使用表 `numbers(N)` 进行测试,该表包含一个名为 `number` 的 UInt64 列,包含从 0 到 N-1 的整数。
3837

3938
## SELECT 子句
4039

@@ -51,11 +50,11 @@ SELECT number FROM numbers(3);
5150

5251
### AS 关键字
5352

54-
在 Databend 中,您可以使用 AS 关键字为列分配别名。这允许您为 SQL 语句和查询结果中的列提供更具描述性和易于理解的名称
53+
在 Databend 中,您可以使用 AS 关键字为列分配别名。这允许您在 SQL 语句和查询结果中为列提供更具描述性和易于理解的名称
5554

56-
- Databend 建议在创建列别名时尽可能避免使用特殊字符。然而,如果在某些情况下需要特殊字符,应将别名用反引号括起来,如:SELECT price AS \`$CA\` FROM ...
55+
- Databend 建议尽量避免在创建列别名时使用特殊字符。然而,在某些情况下如果需要特殊字符,别名应使用反引号括起来,例如:SELECT price AS \`$CA\` FROM ...
5756

58-
- Databend 会自动将别名转换为小写。例如,如果您将列的别名设置为 _Total_,在结果中它将显示为 _total_。如果大小写对您很重要,请将别名用反引号括起来\`Total\`
57+
- Databend 会自动将别名转换为小写。例如,如果您将列别名为 *Total*,它将在结果中显示为 *total*。如果大小写对您很重要,请使用反引号括起别名\`Total\`
5958

6059
```sql
6160
SELECT number AS Total FROM numbers(3);
@@ -77,7 +76,7 @@ SELECT number AS `Total` FROM numbers(3);
7776
+--------+
7877
```
7978

80-
如果您在 SELECT 子句中为列分配了别名,则可以在 WHERE、GROUP BY 和 HAVING 子句中引用该别名,以及在定义别名后的 SELECT 子句本身中引用它
79+
如果您在 SELECT 子句中为列分配别名,您可以在 WHERE、GROUP BY 和 HAVING 子句中引用该别名,以及在别名定义后的 SELECT 子句中引用
8180

8281
```sql
8382
SELECT number * 2 AS a, a * 2 AS double FROM numbers(3) WHERE (a + 1) % 3 = 0;
@@ -97,7 +96,7 @@ SELECT MAX(number) AS b, number % 3 AS c FROM numbers(100) GROUP BY c HAVING b >
9796
+----+---+
9897
```
9998

100-
如果您为列分配了一个别名,并且别名与列名相同,则 WHERE 和 GROUP BY 子句将将别名识别为列名。然而,HAVING 子句将别名识别为别名本身
99+
如果您为列分配别名并且别名名称与列名相同,WHERE 和 GROUP BY 子句将识别别名为列名。然而,HAVING 子句将识别别名为别名本身
101100

102101
```sql
103102
SELECT number * 2 AS number FROM numbers(3)
@@ -115,7 +114,7 @@ HAVING number > 5;
115114

116115
### EXCLUDE 关键字
117116

118-
通过它们的名称从结果中排除一个或多个列。该关键字通常与 `SELECT * ...` 一起使用,以从结果中排除少数列,而不是检索它们所有
117+
从结果中排除一个或多个列。该关键字通常与 `SELECT * ...` 一起使用,以排除结果中的几个列,而不是检索所有列
119118

120119
```sql
121120
SELECT * FROM allemployees ORDER BY id;
@@ -185,12 +184,9 @@ SELECT COLUMNS('employee.*') FROM employee;
185184
4 │ David │
186185
└────────────────────────────────────┘
187186

188-
-- 选择名称中包含子字符串 'name' 的列
187+
-- 选择名称包含子字符串 'name' 的列
189188
SELECT COLUMNS(x -> x LIKE '%name%') FROM employee;
190189

191-
```
192-
193-
```
194190
┌──────────────────┐
195191
│ employee_name │
196192
├──────────────────┤
@@ -201,10 +197,10 @@ SELECT COLUMNS(x -> x LIKE '%name%') FROM employee;
201197
└──────────────────┘
202198
```
203199

204-
`COLUMNS` 关键字也可以与 `EXCLUDE` 一起使用,以明确排除查询结果中的特定列
200+
COLUMNS 关键字还可以与 EXCLUDE 一起使用,以显式排除查询结果中的特定列
205201

206202
```sql
207-
-- 从 'employee' 表中选择除 'salary' 外的所有列
203+
-- 从 'employee' 表中选择所有列,排除 'salary'
208204
SELECT COLUMNS(* EXCLUDE salary) FROM employee;
209205

210206
┌───────────────────────────────────────────────────────┐
@@ -219,7 +215,7 @@ SELECT COLUMNS(* EXCLUDE salary) FROM employee;
219215

220216
### 列位置
221217

222-
通过使用 $N,您可以在 SELECT 子句中表示一个列。例如,$2 代表第二列
218+
通过使用 $N,您可以在 SELECT 子句中表示一列。例如,$2 表示第二列
223219

224220
```sql
225221
CREATE TABLE IF NOT EXISTS t1(a int, b varchar);
@@ -236,15 +232,15 @@ SELECT a, $2 FROM t1;
236232

237233
## FROM 子句
238234

239-
SELECT 语句中的 FROM 子句指定将从中查询数据的源表或表。您还可以通过将 FROM 子句放在 SELECT 子句之前来提高代码的可读性,特别是在管理冗长的 SELECT 列表或希望快速识别所选列的来源时
235+
SELECT 语句中的 FROM 子句指定数据将从中查询的源表或表。您还可以通过将 FROM 子句放在 SELECT 子句之前来提高代码可读性,尤其是在管理长 SELECT 列表或旨在快速识别所选列的来源时
240236

241237
```sql
242-
-- 以下两个语句是等价的
238+
-- 以下两个语句是等效的
243239

244-
-- 语句 1使用 SELECT 子句与 FROM 子句
240+
-- 语句 1: 使用 SELECT 子句和 FROM 子句
245241
SELECT number FROM numbers(3);
246242

247-
-- 语句 2:等价表示,FROM 子句在 SELECT 子句之前
243+
-- 语句 2: 等效表示法,FROM 子句在 SELECT 子句之前
248244
FROM numbers(3) SELECT number;
249245

250246
+--------+
@@ -256,12 +252,11 @@ FROM numbers(3) SELECT number;
256252
+--------+
257253
```
258254

259-
FROM 子句还可以指定位置,使得可以直接从各种来源查询数据,无需首先将其加载到表中。更多信息,请参见[查询 Stage 文件](/guides/load-data/transform/querying-stage)
260-
Stage
255+
FROM 子句还可以指定位置,从而可以直接从各种来源查询数据,而无需首先将其加载到表中。有关更多信息,请参阅 [查询暂存文件](/guides/load-data/transform/querying-stage)
261256

262257
## AT 子句
263258

264-
AT 子句使您能够查询数据的以前版本。更多信息,请参见 [AT](./03-query-at.md)
259+
AT 子句使您能够查询数据的先前版本。有关更多信息,请参阅 [AT](./03-query-at.md)
265260

266261
## WHERE 子句
267262

@@ -277,7 +272,7 @@ SELECT number FROM numbers(3) WHERE number > 1;
277272
## GROUP BY 子句
278273

279274
```sql
280-
--按列别名对结果集的行进行分组
275+
-- 按列别名对结果集的行进行分组
281276
SELECT number%2 as c1, number%3 as c2, MAX(number) FROM numbers(10000) GROUP BY c1, c2;
282277
+------+------+-------------+
283278
| c1 | c2 | MAX(number) |
@@ -290,7 +285,7 @@ SELECT number%2 as c1, number%3 as c2, MAX(number) FROM numbers(10000) GROUP BY
290285
| 1 | 0 | 9999 |
291286
+------+------+-------------+
292287

293-
--按 SELECT 列表中的列位置对结果集的行进行分组
288+
-- 按 SELECT 列表中的列位置对结果集的行进行分组
294289
SELECT number%2 as c1, number%3 as c2, MAX(number) FROM numbers(10000) GROUP BY 1, 2;
295290
+------+------+-------------+
296291
| c1 | c2 | MAX(number) |
@@ -309,8 +304,8 @@ SELECT number%2 as c1, number%3 as c2, MAX(number) FROM numbers(10000) GROUP BY
309304

310305
```sql
311306
SELECT
312-
number % 2 as c1,
313-
number % 3 as c2,
307+
number % 2 as c1,
308+
number % 3 as c2,
314309
MAX(number) as max
315310
FROM
316311
numbers(10000)
@@ -331,7 +326,7 @@ HAVING
331326
## ORDER BY 子句
332327

333328
```sql
334-
--按列名升序排序。
329+
-- 按列名升序排序。
335330
SELECT number FROM numbers(5) ORDER BY number ASC;
336331
+--------+
337332
| number |
@@ -343,7 +338,7 @@ SELECT number FROM numbers(5) ORDER BY number ASC;
343338
| 4 |
344339
+--------+
345340

346-
--按列名降序排序。
341+
-- 按列名降序排序。
347342
SELECT number FROM numbers(5) ORDER BY number DESC;
348343
+--------+
349344
| number |
@@ -355,7 +350,7 @@ SELECT number FROM numbers(5) ORDER BY number DESC;
355350
| 0 |
356351
+--------+
357352

358-
--按列别名排序。
353+
-- 按列别名排序。
359354
SELECT number%2 AS c1, number%3 AS c2 FROM numbers(5) ORDER BY c1 ASC, c2 DESC;
360355
+------+------+
361356
| c1 | c2 |
@@ -367,7 +362,7 @@ SELECT number%2 AS c1, number%3 AS c2 FROM numbers(5) ORDER BY c1 ASC, c2 DESC;
367362
| 1 | 0 |
368363
+------+------+
369364

370-
--按 SELECT 列表中的列位置排序
365+
-- 按 SELECT 列表中的列位置排序
371366
SELECT * FROM t1 ORDER BY 2 DESC;
372367
+------+------+
373368
| a | b |
@@ -384,7 +379,7 @@ SELECT a FROM t1 ORDER BY 1 DESC;
384379
| 1 |
385380
+------+
386381

387-
--使用 NULLS FIRST 或 LAST 选项排序。
382+
-- 使用 NULLS FIRST 或 LAST 选项排序。
388383

389384
CREATE TABLE t_null (
390385
number INTEGER
@@ -396,34 +391,31 @@ INSERT INTO t_null VALUES (3);
396391
INSERT INTO t_null VALUES (NULL);
397392
INSERT INTO t_null VALUES (NULL);
398393

399-
```
400-
401-
```markdown
402-
--Databend 认为 NULL 值大于任何非 NULL 值。
403-
--在以下示例中,按升序排序结果时,NULL 值出现在最后:
394+
-- Databend 认为 NULL 值大于任何非 NULL 值。
395+
-- 在以下按升序排序的示例中,NULL 值出现在最后:
404396

405397
SELECT number FROM t_null order by number ASC;
406398
+--------+
407399
| number |
408400
+--------+
409-
| 1 |
410-
| 2 |
411-
| 3 |
412-
| NULL |
413-
| NULL |
401+
| 1 |
402+
| 2 |
403+
| 3 |
404+
| NULL |
405+
| NULL |
414406
+--------+
415407

416-
-- 要使 NULL 值在前面的示例中首先出现,请使用 NULLS FIRST 选项:
408+
-- 要在前面的示例中使 NULL 值首先出现,请使用 NULLS FIRST 选项:
417409

418410
SELECT number FROM t_null order by number ASC nulls first;
419411
+--------+
420412
| number |
421413
+--------+
422-
| NULL |
423-
| NULL |
424-
| 1 |
425-
| 2 |
426-
| 3 |
414+
| NULL |
415+
| NULL |
416+
| 1 |
417+
| 2 |
418+
| 3 |
427419
+--------+
428420

429421
-- 使用 NULLS LAST 选项使 NULL 值在降序中最后出现:
@@ -432,11 +424,11 @@ SELECT number FROM t_null order by number DESC nulls last;
432424
+--------+
433425
| number |
434426
+--------+
435-
| 3 |
436-
| 2 |
437-
| 1 |
438-
| NULL |
439-
| NULL |
427+
| 3 |
428+
| 2 |
429+
| 1 |
430+
| NULL |
431+
| NULL |
440432
+--------+
441433
```
442434

@@ -459,13 +451,13 @@ SELECT number FROM numbers(100000) ORDER BY number LIMIT 2 OFFSET 10;
459451
+--------+
460452
```
461453

462-
为了优化大结果集的查询性能,Databend 默认启用了 lazy_read_threshold 选项,其默认值为 1,000。此选项专为涉及 LIMIT 子句的查询设计。当启用 lazy_read_threshold 时,如果指定的 LIMIT 数量小于或等于您设置的阈值,则会激活优化。要禁用该选项,请将其设置为 0。
454+
为了优化带有大结果集的查询性能,Databend 默认启用了 lazy_read_threshold 选项,默认值为 1,000。此选项专门设计用于涉及 LIMIT 子句的查询。当 lazy_read_threshold 启用时,优化将针对指定 LIMIT 数量小于或等于您设置的阈值的查询激活。要禁用该选项,请将其设置为 0。
463455

464456
<DetailsWrap>
465457

466458
<details>
467-
<summary>它是如何工作的</summary>
468-
<div>对于包含 ORDER BY 子句和 LIMIT 子句的查询,优化可以提高性能。启用后,如果查询中的 LIMIT 数量小于指定的阈值,系统只会检索和排序涉及 ORDER BY 子句的列,而不是整个结果集。</div><br/><div>系统检索并排序涉及 ORDER BY 子句的列后,它会应用 LIMIT 约束从排序后的结果集中选择所需数量的行。然后系统返回作为查询结果的有限行集。这种方法通过仅获取和排序必要的列来减少资源使用,并通过将处理的行限制为所需的子集来进一步优化查询执行。</div>
459+
<summary>工作原理</summary>
460+
<div>该优化提高了带有 ORDER BY 子句和 LIMIT 子句的查询性能。启用后,如果查询中的 LIMIT 数量小于指定的阈值,则仅检索和排序涉及 ORDER BY 子句的列,而不是整个结果集。</div><br/><div>系统检索并排序涉及 ORDER BY 子句的列后,它会应用 LIMIT 约束从排序结果集中选择所需数量的行。然后系统将有限的一组行作为查询结果返回。这种方法通过仅获取和排序必要的列来减少资源使用,并通过将处理的行限制为所需子集来进一步优化查询执行。</div>
469461
</details>
470462

471463
</DetailsWrap>
@@ -508,12 +500,12 @@ SELECT number FROM numbers(2);
508500
+--------+
509501

510502
SELECT number FROM numbers(2) IGNORE_RESULT;
511-
-- 空集
503+
-- Empty set
512504
```
513505

514-
## 嵌套子选择
506+
## 嵌套子查询
515507

516-
SELECT 语句可以嵌套在查询中
508+
SELECT 语句可以在查询中嵌套
517509

518510
```
519511
SELECT ... [SELECT ...[SELECT [...]]]
@@ -527,4 +519,4 @@ SELECT MIN(number) FROM (SELECT number%3 AS number FROM numbers(10)) GROUP BY nu
527519
| 1 |
528520
| 0 |
529521
+-------------+
530-
```
522+
```

docs/cn/sql-reference/10-sql-commands/20-query-syntax/02-query-with.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)