This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iotdb-docs.git


The following commit(s) were added to refs/heads/main by this push:
     new 979c7fa  fixing bad urls and the SQL Manual statement formatting (#167)
979c7fa is described below

commit 979c7fa53c116596230e69422f5a55f7f24d3abf
Author: wanghui42 <105700158+wanghu...@users.noreply.github.com>
AuthorDate: Wed Jan 31 13:23:10 2024 +0800

    fixing bad urls and the SQL Manual statement formatting (#167)
---
 src/.vuepress/sidebar/V1.2.x/zh.ts                 |   3 +-
 src/.vuepress/sidebar/V1.3.x/en.ts                 |   1 -
 src/.vuepress/sidebar/V1.3.x/zh.ts                 |   4 +-
 src/.vuepress/sidebar_timecho/V1.2.x/zh.ts         |   2 +-
 src/.vuepress/sidebar_timecho/V1.3.x/en.ts         |   1 -
 src/.vuepress/sidebar_timecho/V1.3.x/zh.ts         |   3 +-
 ...al-Requirement.md => Deployment-Preparation.md} |   3 +
 .../Master/Reference/Function-and-Expression.md    | 345 +++++++++++
 src/zh/UserGuide/Master/Reference/UDF-Libraries.md |   4 +-
 src/zh/UserGuide/Master/SQL-Manual/SQL-Manual.md   | 679 +++++++++++----------
 .../Master/User-Manual/IoTDB-View_timecho.md       |   2 +-
 .../Master/User-Manual/Operate-Metadata.md         |   4 +-
 .../Master/User-Manual/Operator-and-Expression.md  |  13 +-
 ...al-Requirement.md => Deployment-Preparation.md} |   0
 ...al-Requirement.md => Deployment-Preparation.md} |   5 +
 .../latest/Reference/Function-and-Expression.md    | 345 +++++++++++
 src/zh/UserGuide/latest/Reference/UDF-Libraries.md |   4 +-
 src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md   | 661 ++++++++++----------
 .../latest/User-Manual/IoTDB-View_timecho.md       |   2 +-
 .../latest/User-Manual/Operate-Metadata.md         |   4 +-
 .../latest/User-Manual/Operator-and-Expression.md  |  13 +-
 21 files changed, 1420 insertions(+), 678 deletions(-)

diff --git a/src/.vuepress/sidebar/V1.2.x/zh.ts 
b/src/.vuepress/sidebar/V1.2.x/zh.ts
index 2bd84e8..a101713 100644
--- a/src/.vuepress/sidebar/V1.2.x/zh.ts
+++ b/src/.vuepress/sidebar/V1.2.x/zh.ts
@@ -66,9 +66,8 @@ export const zhSidebar = {
       prefix: 'Deployment-and-Maintenance/',
       // children: 'structure',
       children: [
-        { text: '环境要求', link: 'Environmental-Requirement' },
+        { text: '部署准备', link: 'Deployment-Preparation' },
         { text: '资源推荐', link: 'Deployment-Recommendation' },
-        { text: '安装包获取', link: 'Get-Installation-Package' },
         { text: '部署指导', link: 'Deployment-Guide' },
         { text: 'docker部署', link: 'Docker-Install' },
       ],
diff --git a/src/.vuepress/sidebar/V1.3.x/en.ts 
b/src/.vuepress/sidebar/V1.3.x/en.ts
index 1c4a41f..b68201a 100644
--- a/src/.vuepress/sidebar/V1.3.x/en.ts
+++ b/src/.vuepress/sidebar/V1.3.x/en.ts
@@ -122,7 +122,6 @@ export const enSidebar = {
         { text: 'Kafka', link: 'Programming-Kafka' },
         { text: 'REST API V1 (Not Recommend)', link: 'RestServiceV1' },
         { text: 'REST API V2', link: 'RestServiceV2' },
-        { text: 'TsFile API', link: 'Programming-TsFile-API' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar/V1.3.x/zh.ts 
b/src/.vuepress/sidebar/V1.3.x/zh.ts
index fdc7adf..57c071c 100644
--- a/src/.vuepress/sidebar/V1.3.x/zh.ts
+++ b/src/.vuepress/sidebar/V1.3.x/zh.ts
@@ -66,9 +66,8 @@ export const zhSidebar = {
       prefix: 'Deployment-and-Maintenance/',
       // children: 'structure',
       children: [
-        { text: '环境要求', link: 'Environmental-Requirement' },
+        { text: '部署准备', link: 'Deployment-Preparation' },
         { text: '资源推荐', link: 'Deployment-Recommendation' },
-        { text: '安装包获取', link: 'Get-Installation-Package' },
         { text: '部署指导', link: 'Deployment-Guide' },
         { text: 'docker部署', link: 'Docker-Install' },
       ],
@@ -122,7 +121,6 @@ export const zhSidebar = {
         { text: 'Kafka', link: 'Programming-Kafka' },
         { text: 'REST API V1', link: 'RestServiceV1' },
         { text: 'REST API V2', link: 'RestServiceV2' },
-        { text: 'TsFile API', link: 'Programming-TsFile-API' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar_timecho/V1.2.x/zh.ts 
b/src/.vuepress/sidebar_timecho/V1.2.x/zh.ts
index e2cd181..0d3d3e2 100644
--- a/src/.vuepress/sidebar_timecho/V1.2.x/zh.ts
+++ b/src/.vuepress/sidebar_timecho/V1.2.x/zh.ts
@@ -66,7 +66,7 @@ export const zhSidebar = {
       prefix: 'Deployment-and-Maintenance/',
       // children: 'structure',
       children: [
-        { text: '环境要求', link: 'Environmental-Requirement' },
+        { text: '部署准备', link: 'Deployment-Preparation' },
         { text: '资源推荐', link: 'Deployment-Recommendation' },
         { text: '部署指导', link: 'Deployment-Guide_timecho' },
         { text: 'docker部署', link: 'Docker-Install' },
diff --git a/src/.vuepress/sidebar_timecho/V1.3.x/en.ts 
b/src/.vuepress/sidebar_timecho/V1.3.x/en.ts
index 1533169..1f2d937 100644
--- a/src/.vuepress/sidebar_timecho/V1.3.x/en.ts
+++ b/src/.vuepress/sidebar_timecho/V1.3.x/en.ts
@@ -127,7 +127,6 @@ export const enSidebar = {
         { text: 'Kafka', link: 'Programming-Kafka' },
         { text: 'REST API V1 (Not Recommend)', link: 'RestServiceV1' },
         { text: 'REST API V2', link: 'RestServiceV2' },
-        { text: 'TsFile API', link: 'Programming-TsFile-API' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar_timecho/V1.3.x/zh.ts 
b/src/.vuepress/sidebar_timecho/V1.3.x/zh.ts
index 17add1d..df4e412 100644
--- a/src/.vuepress/sidebar_timecho/V1.3.x/zh.ts
+++ b/src/.vuepress/sidebar_timecho/V1.3.x/zh.ts
@@ -66,7 +66,7 @@ export const zhSidebar = {
       prefix: 'Deployment-and-Maintenance/',
       // children: 'structure',
       children: [
-        { text: '环境要求', link: 'Environmental-Requirement' },
+        { text: '部署准备', link: 'Deployment-Preparation' },
         { text: '资源推荐', link: 'Deployment-Recommendation' },
         { text: '部署指导', link: 'Deployment-Guide_timecho' },
         { text: 'docker部署', link: 'Docker-Install' },
@@ -127,7 +127,6 @@ export const zhSidebar = {
         { text: 'Kafka', link: 'Programming-Kafka' },
         { text: 'REST API V1', link: 'RestServiceV1' },
         { text: 'REST API V2', link: 'RestServiceV2' },
-        { text: 'TsFile API', link: 'Programming-TsFile-API' },
       ],
     },
     {
diff --git 
a/src/zh/UserGuide/Master/Deployment-and-Maintenance/Environmental-Requirement.md
 b/src/zh/UserGuide/Master/Deployment-and-Maintenance/Deployment-Preparation.md
similarity index 95%
rename from 
src/zh/UserGuide/Master/Deployment-and-Maintenance/Environmental-Requirement.md
rename to 
src/zh/UserGuide/Master/Deployment-and-Maintenance/Deployment-Preparation.md
index 60b6fce..f320342 100644
--- 
a/src/zh/UserGuide/Master/Deployment-and-Maintenance/Environmental-Requirement.md
+++ 
b/src/zh/UserGuide/Master/Deployment-and-Maintenance/Deployment-Preparation.md
@@ -34,3 +34,6 @@
 
 > **# Linux** <br>`sudo sysctl -w net.core.somaxconn=65535` <br>**# FreeBSD 或 
 > Darwin** <br>`sudo sysctl -w kern.ipc.somaxconn=65535`
 
+## 安装包获取
+
+企业版安装包可经由商务获取。
\ No newline at end of file
diff --git a/src/zh/UserGuide/Master/Reference/Function-and-Expression.md 
b/src/zh/UserGuide/Master/Reference/Function-and-Expression.md
index aa4f4ec..6b126e5 100644
--- a/src/zh/UserGuide/Master/Reference/Function-and-Expression.md
+++ b/src/zh/UserGuide/Master/Reference/Function-and-Expression.md
@@ -2651,3 +2651,348 @@ Total line number = 11
 It costs 0.118s
 ```
 
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+## 条件表达式
+
+### CASE
+
+CASE表达式是一种条件表达式,可用于根据特定条件返回不同的值,功能类似于其它语言中的if-else。
+CASE表达式由以下部分组成:
+- CASE关键字:表示开始CASE表达式。
+- 
WHEN-THEN子句:可能存在多个,用于定义条件与给出结果。此子句又分为WHEN和THEN两个部分,WHEN部分表示条件,THEN部分表示结果表达式。如果WHEN条件为真,则返回对应的THEN结果。
+- ELSE子句:如果没有任何WHEN-THEN子句的条件为真,则返回ELSE子句中的结果。可以不存在ELSE子句。
+- END关键字:表示结束CASE表达式。
+
+CASE表达式是一种标量运算,可以配合任何其它的标量运算或聚合函数使用。
+
+下文把所有THEN部分和ELSE子句并称为结果子句。
+
+#### 语法示例
+
+CASE表达式支持两种格式。
+
+语法示例如下:
+- 格式1:
+```sql
+  CASE
+    WHEN condition1 THEN expression1
+    [WHEN condition2 THEN expression2] ...
+    [ELSE expression_end]
+  END
+```
+  从上至下检查WHEN子句中的condition。
+
+  condition为真时返回对应THEN子句中的expression,condition为假时继续检查下一个WHEN子句中的condition。
+- 格式2:
+```sql
+  CASE caseValue
+    WHEN whenValue1 THEN expression1
+    [WHEN whenValue2 THEN expression2] ...
+    [ELSE expression_end]
+  END
+```
+
+  从上至下检查WHEN子句中的whenValue是否与caseValue相等。
+
+  满足caseValue=whenValue时返回对应THEN子句中的expression,不满足时继续检查下一个WHEN子句中的whenValue。
+
+  格式2会被iotdb转换成等效的格式1,例如以上sql语句会转换成:
+```sql
+  CASE
+    WHEN caseValue=whenValue1 THEN expression1
+    [WHEN caseValue=whenValue1 THEN expression1] ...
+    [ELSE expression_end]
+  END
+```
+
+如果格式1中的condition均不为真,或格式2中均不满足caseVaule=whenValue,则返回ELSE子句中的expression_end;不存在ELSE子句则返回null。
+
+#### 注意事项
+
+- 格式1中,所有WHEN子句必须返回BOOLEAN类型。
+- 格式2中,所有WHEN子句必须能够与CASE子句进行判等。
+- 一个CASE表达式中所有结果子句的返回值类型需要满足一定的条件:
+  - BOOLEAN类型不能与其它类型共存,存在其它类型会报错。
+  - TEXT类型不能与其它类型共存,存在其它类型会报错。
+  - 其它四种数值类型可以共存,最终结果会为DOUBLE类型,转换过程可能会存在精度损失。
+- CASE表达式没有实现惰性计算,即所有子句都会被计算。
+- CASE表达式不支持与UDF混用。
+- CASE表达式内部不能存在聚合函数,但CASE表达式的结果可以提供给聚合函数。
+- 使用CLI时,由于CASE表达式字符串较长,推荐用as为表达式提供别名。
+
+#### 使用示例
+
+##### 示例1
+
+CASE表达式可对数据进行直观地分析,例如:
+
+- 某种化学产品的制备需要温度和压力都处于特定范围之内
+- 在制备过程中传感器会侦测温度和压力,在iotdb中形成T(temperature)和P(pressure)两个时间序列
+
+这种应用场景下,CASE表达式可以指出哪些时间的参数是合适的,哪些时间的参数不合适,以及为什么不合适。
+
+数据:
+```sql
+IoTDB> select * from root.test1
++-----------------------------+------------+------------+
+|                         Time|root.test1.P|root.test1.T|
++-----------------------------+------------+------------+
+|2023-03-29T11:25:54.724+08:00|   1000000.0|      1025.0|
+|2023-03-29T11:26:13.445+08:00|   1000094.0|      1040.0|
+|2023-03-29T11:27:36.988+08:00|   1000095.0|      1041.0|
+|2023-03-29T11:27:56.446+08:00|   1000095.0|      1059.0|
+|2023-03-29T11:28:20.838+08:00|   1200000.0|      1040.0|
++-----------------------------+------------+------------+
+```
+
+SQL语句:
+```sql
+select T, P, case
+when 1000<T and T<1050 and 1000000<P and P<1100000 then "good!"
+when T<=1000 or T>=1050 then "bad temperature"
+when P<=1000000 or P>=1100000 then "bad pressure"
+end as `result`
+from root.test1
+```
+
+
+输出:
+```
++-----------------------------+------------+------------+---------------+
+|                         Time|root.test1.T|root.test1.P|         result|
++-----------------------------+------------+------------+---------------+
+|2023-03-29T11:25:54.724+08:00|      1025.0|   1000000.0|   bad pressure|
+|2023-03-29T11:26:13.445+08:00|      1040.0|   1000094.0|          good!|
+|2023-03-29T11:27:36.988+08:00|      1041.0|   1000095.0|          good!|
+|2023-03-29T11:27:56.446+08:00|      1059.0|   1000095.0|bad temperature|
+|2023-03-29T11:28:20.838+08:00|      1040.0|   1200000.0|   bad pressure|
++-----------------------------+------------+------------+---------------+
+```
+
+
+##### 示例2
+
+CASE表达式可实现结果的自由转换,例如将具有某种模式的字符串转换成另一种字符串。
+
+数据:
+```sql
+IoTDB> select * from root.test2
++-----------------------------+--------------+
+|                         Time|root.test2.str|
++-----------------------------+--------------+
+|2023-03-27T18:23:33.427+08:00|         abccd|
+|2023-03-27T18:23:39.389+08:00|         abcdd|
+|2023-03-27T18:23:43.463+08:00|       abcdefg|
++-----------------------------+--------------+
+```
+
+SQL语句:
+```sql
+select str, case
+when str like "%cc%" then "has cc"
+when str like "%dd%" then "has dd"
+else "no cc and dd" end as `result`
+from root.test2
+```
+
+输出:
+```
++-----------------------------+--------------+------------+
+|                         Time|root.test2.str|      result|
++-----------------------------+--------------+------------+
+|2023-03-27T18:23:33.427+08:00|         abccd|      has cc|
+|2023-03-27T18:23:39.389+08:00|         abcdd|      has dd|
+|2023-03-27T18:23:43.463+08:00|       abcdefg|no cc and dd|
++-----------------------------+--------------+------------+
+```
+
+##### 示例3:搭配聚合函数
+
+###### 合法:聚合函数←CASE表达式
+
+CASE表达式可作为聚合函数的参数。例如,与聚合函数COUNT搭配,可实现同时按多个条件进行数据统计。
+
+数据:
+```sql
+IoTDB> select * from root.test3
++-----------------------------+------------+
+|                         Time|root.test3.x|
++-----------------------------+------------+
+|2023-03-27T18:11:11.300+08:00|         0.0|
+|2023-03-27T18:11:14.658+08:00|         1.0|
+|2023-03-27T18:11:15.981+08:00|         2.0|
+|2023-03-27T18:11:17.668+08:00|         3.0|
+|2023-03-27T18:11:19.112+08:00|         4.0|
+|2023-03-27T18:11:20.822+08:00|         5.0|
+|2023-03-27T18:11:22.462+08:00|         6.0|
+|2023-03-27T18:11:24.174+08:00|         7.0|
+|2023-03-27T18:11:25.858+08:00|         8.0|
+|2023-03-27T18:11:27.979+08:00|         9.0|
++-----------------------------+------------+
+```
+
+SQL语句:
+
+```sql
+select
+count(case when x<=1 then 1 end) as `(-∞,1]`,
+count(case when 1<x and x<=3 then 1 end) as `(1,3]`,
+count(case when 3<x and x<=7 then 1 end) as `(3,7]`,
+count(case when 7<x then 1 end) as `(7,+∞)`
+from root.test3
+```
+
+输出:
+```
++------+-----+-----+------+
+|(-∞,1]|(1,3]|(3,7]|(7,+∞)|
++------+-----+-----+------+
+|     2|    2|    4|     2|
++------+-----+-----+------+
+```
+
+###### 非法:CASE表达式←聚合函数
+
+不支持在CASE表达式内部使用聚合函数。
+
+SQL语句:
+```sql
+select case when x<=1 then avg(x) else sum(x) end from root.test3
+```
+
+输出:
+```
+Msg: 701: Raw data and aggregation result hybrid calculation is not supported.
+```
+
+##### 示例4:格式2
+
+一个使用格式2的简单例子。如果所有条件都为判等,则推荐使用格式2,以简化SQL语句。
+
+数据:
+```sql
+IoTDB> select * from root.test4
++-----------------------------+------------+
+|                         Time|root.test4.x|
++-----------------------------+------------+
+|1970-01-01T08:00:00.001+08:00|         1.0|
+|1970-01-01T08:00:00.002+08:00|         2.0|
+|1970-01-01T08:00:00.003+08:00|         3.0|
+|1970-01-01T08:00:00.004+08:00|         4.0|
++-----------------------------+------------+
+```
+
+SQL语句:
+```sql
+select x, case x when 1 then "one" when 2 then "two" else "other" end from 
root.test4
+```
+
+输出:
+```
++-----------------------------+------------+-----------------------------------------------------------------------------------+
+|                         Time|root.test4.x|CASE WHEN root.test4.x = 1 THEN 
"one" WHEN root.test4.x = 2 THEN "two" ELSE "other"|
++-----------------------------+------------+-----------------------------------------------------------------------------------+
+|1970-01-01T08:00:00.001+08:00|         1.0|                                   
                                             one|
+|1970-01-01T08:00:00.002+08:00|         2.0|                                   
                                             two|
+|1970-01-01T08:00:00.003+08:00|         3.0|                                   
                                           other|
+|1970-01-01T08:00:00.004+08:00|         4.0|                                   
                                           other|
++-----------------------------+------------+-----------------------------------------------------------------------------------+
+```
+
+##### 示例5:结果子句类型
+
+CASE表达式的结果子句的返回值需要满足一定的类型限制。
+
+此示例中,继续使用示例4中的数据。
+
+###### 非法:BOOLEAN与其它类型共存
+
+SQL语句:
+```sql
+select x, case x when 1 then true when 2 then 2 end from root.test4
+```
+
+输出:
+```
+Msg: 701: CASE expression: BOOLEAN and other types cannot exist at same time
+```
+
+###### 合法:只存在BOOLEAN类型
+
+SQL语句:
+```sql
+select x, case x when 1 then true when 2 then false end as `result` from 
root.test4
+```
+
+输出:
+```
++-----------------------------+------------+------+
+|                         Time|root.test4.x|result|
++-----------------------------+------------+------+
+|1970-01-01T08:00:00.001+08:00|         1.0|  true|
+|1970-01-01T08:00:00.002+08:00|         2.0| false|
+|1970-01-01T08:00:00.003+08:00|         3.0|  null|
+|1970-01-01T08:00:00.004+08:00|         4.0|  null|
++-----------------------------+------------+------+
+```
+
+###### 非法:TEXT与其它类型共存
+
+SQL语句:
+```sql
+select x, case x when 1 then 1 when 2 then "str" end from root.test4
+```
+
+输出:
+```
+Msg: 701: CASE expression: TEXT and other types cannot exist at same time
+```
+
+###### 合法:只存在TEXT类型
+
+见示例1。
+
+###### 合法:数值类型共存
+
+SQL语句:
+```sql
+select x, case x
+when 1 then 1
+when 2 then 222222222222222
+when 3 then 3.3
+when 4 then 4.4444444444444
+end as `result`
+from root.test4
+```
+
+输出:
+```
++-----------------------------+------------+-------------------+
+|                         Time|root.test4.x|             result|
++-----------------------------+------------+-------------------+
+|1970-01-01T08:00:00.001+08:00|         1.0|                1.0|
+|1970-01-01T08:00:00.002+08:00|         2.0|2.22222222222222E14|
+|1970-01-01T08:00:00.003+08:00|         3.0|  3.299999952316284|
+|1970-01-01T08:00:00.004+08:00|         4.0|   4.44444465637207|
++-----------------------------+------------+-------------------+
+```
\ No newline at end of file
diff --git a/src/zh/UserGuide/Master/Reference/UDF-Libraries.md 
b/src/zh/UserGuide/Master/Reference/UDF-Libraries.md
index 6ec19b2..be45495 100644
--- a/src/zh/UserGuide/Master/Reference/UDF-Libraries.md
+++ b/src/zh/UserGuide/Master/Reference/UDF-Libraries.md
@@ -605,13 +605,13 @@ select Accuracy(t1,t2,t3,m1,m2,m3) from root.test
 
 #### 函数简介
 
-本函数用于计算时间序列的自相关函数值,即序列与自身之间的互相关函数,详情参见[XCorr](./Data-Matching.md#XCorr)函数文档。
+本函数用于计算时间序列的自相关函数值,即序列与自身之间的互相关函数。
 
 **函数名:** ACF
 
 **输入序列:** 仅支持单个输入序列,类型为 INT32 / INT64 / FLOAT / DOUBLE。
 
-**输出序列:** 输出单个序列,类型为 
DOUBLE。序列中共包含$2N-1$个数据点,每个值的具体含义参见[XCorr](./Data-Matching.md#XCorr)函数文档。
+**输出序列:** 输出单个序列,类型为 DOUBLE。序列中共包含$2N-1$个数据点。
 
 **提示:**
 
diff --git a/src/zh/UserGuide/Master/SQL-Manual/SQL-Manual.md 
b/src/zh/UserGuide/Master/SQL-Manual/SQL-Manual.md
index f66d1c5..c46653f 100644
--- a/src/zh/UserGuide/Master/SQL-Manual/SQL-Manual.md
+++ b/src/zh/UserGuide/Master/SQL-Manual/SQL-Manual.md
@@ -202,32 +202,36 @@ show timeseries where TAGS(tag1)='v1'
 
 #### 查看路径的所有子路径
 
+```sql
 SHOW CHILD PATHS pathPattern
-
 - 查询 root.ln 的下一层:show child paths root.ln
 - 查询形如 root.xx.xx.xx 的路径:show child paths root.*.*
-
+```
 #### 查看路径的所有子节点
 
+```sql
 SHOW CHILD NODES pathPattern
 
 - 查询 root 的下一层:show child nodes root
 - 查询 root.ln 的下一层 :show child nodes root.ln
-
+```
 #### 查看设备
 
+```sql
 IoTDB> show devices
 
 IoTDB> show devices root.ln.**
-
+```
 ##### 查看设备及其 database 信息
 
+```sql
 IoTDB> show devices with database
 
 IoTDB> show devices root.ln.** with database
-
+```
 #### 统计节点数
 
+```sql
 IoTDB > COUNT NODES root.** LEVEL=2
 
 IoTDB > COUNT NODES root.ln.** LEVEL=2
@@ -235,15 +239,16 @@ IoTDB > COUNT NODES root.ln.** LEVEL=2
 IoTDB > COUNT NODES root.ln.wf01.* LEVEL=3
 
 IoTDB > COUNT NODES root.**.temperature LEVEL=3
-
+```
 #### 统计设备数量
 
+```sql
 IoTDB> show devices
 
 IoTDB> count devices
 
 IoTDB> count devices root.ln.**
-
+```
 ### 4、设备模板管理
 
 ![img](https://alioss.timecho.com/docs/img/%E6%A8%A1%E6%9D%BF.png)
@@ -265,19 +270,19 @@ CREATE SCHEMA TEMPLATE <templateName> ALIGNED? '(' 
<measurementId> <attributeCla
 ```
 
 创建包含两个非对齐序列的元数据模板
-
+```sql
 IoTDB> create schema template t1 (temperature FLOAT encoding=RLE, status 
BOOLEAN encoding=PLAIN compression=SNAPPY)
-
+```
 创建包含一组对齐序列的元数据模板
-
+```sql
 IoTDB> create schema template t2 aligned (lat FLOAT encoding=Gorilla, lon 
FLOAT encoding=Gorilla)
-
+```
 #### 挂载元数据模板
-
+```sql
 IoTDB> set SCHEMA TEMPLATE t1 to root.sg1
-
+```
 #### 激活元数据模板
-
+```sql
 IoTDB> create timeseries using SCHEMA TEMPLATE on root.sg1.d1
 
 IoTDB> set SCHEMA TEMPLATE t1 to root.sg1.d1
@@ -287,113 +292,108 @@ IoTDB> set SCHEMA TEMPLATE t2 to root.sg1.d2
 IoTDB> create timeseries using schema template on root.sg1.d1
 
 IoTDB> create timeseries using schema template on root.sg1.d2
-
+```
 #### 查看元数据模板
-
+```sql
 IoTDB> show schema templates
-
+```
 - 查看某个元数据模板下的物理量
-
+```sql
 IoTDB> show nodes in schema template t1
-
+```
 - 查看挂载了某个元数据模板的路径
-
+```sql
 IoTDB> show paths set schema template t1
-
+```
 - 查看使用了某个元数据模板的路径(即模板在该路径上已激活,序列已创建)
-
+```sql
 IoTDB> show paths using schema template t1
-
-IoTDB> show devices using schema template t1
-
-- 查看使用了某个元数据模板的设备信息
-
-IoTDB> show devices where template = 't1'
-
-- 查看没有使用某个元数据模板的设备信息
-
-IoTDB> show devices where template != 't1'
-
-- 查看没有使用元数据模板的设备信息
-
-IoTDB> show devices where template is null
-
-- 查看使用元数据模板的设备信息
-
-IoTDB> show devices where template is not null
-
+```
 #### 解除元数据模板
-
+```sql
 IoTDB> delete timeseries of schema template t1 from root.sg1.d1
-
+```
+```sql
 IoTDB> deactivate schema template t1 from root.sg1.d1
-
+```
 批量处理
-
+```sql
 IoTDB> delete timeseries of schema template t1 from root.sg1.*, root.sg2.*
-
+```
+```sql
 IoTDB> deactivate schema template t1 from root.sg1.*, root.sg2.*
-
+```
 #### 卸载元数据模板
-
+```sql
 IoTDB> unset schema template t1 from root.sg1.d1
-
+```
 #### 删除元数据模板
-
+```sql
 IoTDB> drop schema template t1
-
+```
 ### 5、数据存活时间管理
 
 #### 设置 TTL
-
+```sql
 IoTDB> set ttl to root.ln 3600000
-
+```
+```sql
 IoTDB> set ttl to root.sgcc.** 3600000
-
+```
+```sql
 IoTDB> set ttl to root.** 3600000
-
+```
 #### 取消 TTL
-
+```sql
 IoTDB> unset ttl to root.ln
-
+```
+```sql
 IoTDB> unset ttl to root.sgcc.**
-
+```
+```sql
 IoTDB> unset ttl to root.**
+```
 
 #### 显示 TTL
-
+```sql
 IoTDB> SHOW ALL TTL
-
+```
+```sql
 IoTDB> SHOW TTL ON StorageGroupNames
-
+```
 ## 写入数据
 
 ### 1、写入单列数据
-
+```sql
 IoTDB > insert into root.ln.wf02.wt02(timestamp,status) values(1,true)
-
+```
+```sql
 IoTDB > insert into root.ln.wf02.wt02(timestamp,hardware) values(1, 'v1'),(2, 
'v1')
-
+```
 ### 2、写入多列数据
-
+```sql
 IoTDB > insert into root.ln.wf02.wt02(timestamp, status, hardware) values (2, 
false, 'v2')
-
+```
+```sql
 IoTDB > insert into root.ln.wf02.wt02(timestamp, status, hardware) VALUES (3, 
false, 'v3'),(4, true, 'v4')
-
+```
 ### 3、使用服务器时间戳
-
+```sql
 IoTDB > insert into root.ln.wf02.wt02(status, hardware) values (false, 'v2')
-
+```
 ### 4、写入对齐时间序列数据
-
+```sql
 IoTDB > create aligned timeseries root.sg1.d1(s1 INT32, s2 DOUBLE)
-
+```
+```sql
 IoTDB > insert into root.sg1.d1(timestamp, s1, s2) aligned values(1, 1, 1)
-
+```
+```sql
 IoTDB > insert into root.sg1.d1(timestamp, s1, s2) aligned values(2, 2, 2), 
(3, 3, 3)
-
+```
+```sql
 IoTDB > select * from root.sg1.d1
-
+```
 ### 5、加载 TsFile 文件数据
 
 load '<path/dir>' [sglevel=int][verify=true/false][onSuccess=delete/none]
@@ -421,93 +421,102 @@ load '<path/dir>' 
[sglevel=int][verify=true/false][onSuccess=delete/none]
 ## 删除数据
 
 ### 1、删除单列数据
-
+```sql
 delete from root.ln.wf02.wt02.status where time<=2017-11-01T16:26:00;
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time>=2017-01-01T00:00:00 and 
time<=2017-11-01T16:26:00;
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time < 10
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time <= 10
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time < 20 and time > 10
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time <= 20 and time >= 10
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time > 20
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time >= 20
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time = 20
-
+```
 出错:
-
+```sql
 delete from root.ln.wf02.wt02.status where time > 4 or time < 0
 
 Msg: 303: Check metadata error: For delete statement, where clause can only 
contain atomic
 
 expressions like : time > XXX, time <= XXX, or two atomic expressions 
connected by 'AND'
+```
 
 删除时间序列中的所有数据:
-
+```sql
 delete from root.ln.wf02.wt02.status
-
+```
 ### 2、删除多列数据
-
+```sql
 delete from root.ln.wf02.wt02.* where time <= 2017-11-01T16:26:00;
-
+```
 声明式的编程方式:
-
+```sql
 IoTDB> delete from root.ln.wf03.wt02.status where time < now()
 
 Msg: The statement is executed successfully.
-
+```
 ## 数据查询
 
 ### 1、基础查询
 
 #### 时间过滤查询
-
+```sql
 select temperature from root.ln.wf01.wt01 where time < 2017-11-01T00:08:00.000
-
+```
 #### 根据一个时间区间选择多列数据
-
+```sql
 select status, temperature from root.ln.wf01.wt01 where time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000;
-
+```
 #### 按照多个时间区间选择同一设备的多列数据
-
+```sql
 select status, temperature from root.ln.wf01.wt01 where (time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000) or (time >= 
2017-11-01T16:35:00.000 and time <= 2017-11-01T16:37:00.000);
-
+```
 #### 按照多个时间区间选择不同设备的多列数据
-
+```sql
 select wf01.wt01.status, wf02.wt02.hardware from root.ln where (time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000) or (time >= 
2017-11-01T16:35:00.000 and time <= 2017-11-01T16:37:00.000);
-
+```
 #### 根据时间降序返回结果集
-
+```sql
 select * from root.ln.** where time > 1 order by time desc limit 10;
-
+```
 ### 2、选择表达式
 
 #### 使用别名
-
+```sql
 select s1 as temperature, s2 as speed from root.ln.wf01.wt01;
-
+```
 #### 运算符
 
 #### 函数
 
 不支持:
-
+```sql
 select s1, count(s1) from root.sg.d1;
 
 select sin(s1), count(s1) from root.sg.d1;
 
 select s1, count(s1) from root.sg.d1 group by ([10,100),10ms);
-
+```
 ##### 时间序列查询嵌套表达式
 
 示例 1:
-
+```sql
 select a,
 
 ​       b,
@@ -519,9 +528,9 @@ select a,
 ​       -(a + b) * (sin(a + b) * sin(a + b) + cos(a + b) * cos(a + b)) + 1
 
 from root.sg1;
-
+```
 示例 2:
-
+```sql
 select (a + b) * 2 + sin(a) from root.sg
 
 示例 3:
@@ -531,11 +540,11 @@ select (a + *) / 2  from root.sg1
 示例 4:
 
 select (a + b) * 3 from root.sg, root.ln
-
+```
 ##### 聚合查询嵌套表达式
 
 示例 1:
-
+```sql
 select avg(temperature),
 
 ​       sin(avg(temperature)),
@@ -547,17 +556,17 @@ select avg(temperature),
 ​       avg(temperature) + sum(hardware)
 
 from root.ln.wf01.wt01;
-
+```
 示例 2:
-
+```sql
 select avg(*), 
 
 ​           (avg(*) + 1) * 3 / 2 -1 
 
 from root.sg1
-
+```
 示例 3:
-
+```sql
 select avg(temperature),
 
 ​       sin(avg(temperature)),
@@ -571,7 +580,7 @@ select avg(temperature),
 from root.ln.wf01.wt01
 
 GROUP BY([10, 90), 10ms);
-
+```
 #### 最新点查询
 
 SQL 语法:
@@ -581,211 +590,212 @@ select last <Path> [COMMA <Path>]* from < PrefixPath > 
[COMMA < PrefixPath >]* <
 ```
 
 查询 root.ln.wf01.wt01.status 的最新数据点
-
+```sql
 IoTDB> select last status from root.ln.wf01.wt01
-
+```
 查询 root.ln.wf01.wt01 下 status,temperature 时间戳大于等于 2017-11-07T23:50:00 的最新数据点
-
+```sql
 IoTDB> select last status, temperature from root.ln.wf01.wt01 where time >= 
2017-11-07T23:50:00
-
+```
  查询 root.ln.wf01.wt01 下所有序列的最新数据点,并按照序列名降序排列
-
+```sql
 IoTDB> select last * from root.ln.wf01.wt01 order by timeseries desc;
-
+```
 ### 3、查询过滤条件
 
 #### 时间过滤条件
 
 选择时间戳大于 2022-01-01T00:05:00.000 的数据:
-
+```sql
 select s1 from root.sg1.d1 where time > 2022-01-01T00:05:00.000;
-
+```
 选择时间戳等于 2022-01-01T00:05:00.000 的数据:
-
+```sql
 select s1 from root.sg1.d1 where time = 2022-01-01T00:05:00.000;
-
+```
 选择时间区间 [2017-11-01T00:05:00.000, 2017-11-01T00:12:00.000) 内的数据:
-
+```sql
 select s1 from root.sg1.d1 where time >= 2022-01-01T00:05:00.000 and time < 
2017-11-01T00:12:00.000;
-
+```
 #### 值过滤条件
 
 选择值大于 36.5 的数据:
-
+```sql
 select temperature from root.sg1.d1 where temperature > 36.5;
-
+```
 选择值等于 true 的数据:
-
+```sql
 select status from root.sg1.d1 where status = true;
-
+```
 选择区间 [36.5,40] 内或之外的数据:
-
+```sql
 select temperature from root.sg1.d1 where temperature between 36.5 and 40;
-
+```
+```sql
 select temperature from root.sg1.d1 where temperature not between 36.5 and 40;
-
+```
 选择值在特定范围内的数据:
-
+```sql
 select code from root.sg1.d1 where code in ('200', '300', '400', '500');
-
+```
 选择值在特定范围外的数据:
-
+```sql
 select code from root.sg1.d1 where code not in ('200', '300', '400', '500');
-
+```
 选择值为空的数据:
-
+```sql
 select code from root.sg1.d1 where temperature is null;
-
+```
 选择值为非空的数据:
-
+```sql
 select code from root.sg1.d1 where temperature is not null;
-
+```
 #### 模糊查询
 
 查询 `root.sg.d1` 下 `value` 含有`'cc'`的数据
-
+```sql
 IoTDB> select * from root.sg.d1 where value like '%cc%'
-
+```
 查询 `root.sg.d1` 下 `value` 中间为 `'b'`、前后为任意单个字符的数据
-
+```sql
 IoTDB> select * from root.sg.device where value like '_b_'
-
-查询 root.sg.d1 下 value 值为26个英文字符组成的字符串
 ```
+查询 root.sg.d1 下 value 值为26个英文字符组成的字符串
+```sql
 IoTDB> select * from root.sg.d1 where value regexp '^[A-Za-z]+$'
 ```
 
 查询 root.sg.d1 下 value 值为26个小写英文字符组成的字符串且时间大于100的
-```
+```sql
 IoTDB> select * from root.sg.d1 where value regexp '^[a-z]+$' and time > 100
 ```
 
 ### 4、分段分组聚合
 
 #### 未指定滑动步长的时间区间分组聚合查询
-
+```sql
 select count(status), max_value(temperature) from root.ln.wf01.wt01 group by 
([2017-11-01T00:00:00, 2017-11-07T23:00:00),1d);
-
+```
 #### 指定滑动步长的时间区间分组聚合查询
-
+```sql
 select count(status), max_value(temperature) from root.ln.wf01.wt01 group by 
([2017-11-01 00:00:00, 2017-11-07 23:00:00), 3h, 1d);
-
+```
 滑动步长可以小于聚合窗口
-
+```sql
 select count(status), max_value(temperature) from root.ln.wf01.wt01 group by 
([2017-11-01 00:00:00, 2017-11-01 10:00:00), 4h, 2h);
-
+```
 #### 按照自然月份的时间区间分组聚合查询
-
+```sql
 select count(status) from root.ln.wf01.wt01 where time > 2017-11-01T01:00:00 
group by([2017-11-01T00:00:00, 2019-11-07T23:00:00), 1mo, 2mo);
-
+```
 每个时间间隔窗口内都有数据
-
+```sql
 select count(status) from root.ln.wf01.wt01 group by([2017-10-31T00:00:00, 
2019-11-07T23:00:00), 1mo, 2mo);
-
+```
 #### 左开右闭区间
-
+```sql
 select count(status) from root.ln.wf01.wt01 group by ((2017-11-01T00:00:00, 
2017-11-07T23:00:00],1d);
-
+```
 #### 与分组聚合混合使用
 
 统计降采样后的数据点个数
-
+```sql
 select count(status) from root.ln.wf01.wt01 group by ((2017-11-01T00:00:00, 
2017-11-07T23:00:00],1d), level=1;
-
+```
 加上滑动 Step 的降采样后的结果也可以汇总
-
+```sql
 select count(status) from root.ln.wf01.wt01 group by ([2017-11-01 00:00:00, 
2017-11-07 23:00:00), 3h, 1d), level=1;
-
+```
 #### 路径层级分组聚合
 
 统计不同 database 下 status 序列的数据点个数
-
+```sql
 select count(status) from root.** group by level = 1
-
+```
  统计不同设备下 status 序列的数据点个数
-
+```sql
 select count(status) from root.** group by level = 3
-
+```
 统计不同 database 下的不同设备中 status 序列的数据点个数
-
+```sql
 select count(status) from root.** group by level = 1, 3
-
+```
 查询所有序列下温度传感器 temperature 的最大值
-
+```sql
 select max_value(temperature) from root.** group by level = 0
-
+```
 查询某一层级下所有传感器拥有的总数据点数
-
+```sql
 select count(*) from root.ln.** group by level = 2
-
+```
 #### 标签分组聚合
 
 ##### 单标签聚合查询
-
+```sql
 SELECT AVG(temperature) FROM root.factory1.** GROUP BY TAGS(city);
-
+```
 ##### 多标签聚合查询
-
+```sql
 SELECT avg(temperature) FROM root.factory1.** GROUP BY TAGS(city, workshop);
-
+```
 ##### 基于时间区间的标签聚合查询
-
+```sql
 SELECT AVG(temperature) FROM root.factory1.** GROUP BY ([1000, 10000), 5s), 
TAGS(city, workshop);
-
+```
 #### 差值分段聚合
-
+```sql
 group by variation(controlExpression[,delta][,ignoreNull=true/false])
-
+```
 ##### delta=0时的等值事件分段
-
+```sql
 select __endTime, avg(s1), count(s2), sum(s3) from root.sg.d group by 
variation(s6)
-
+```
 指定ignoreNull为false
-
+```sql
 select __endTime, avg(s1), count(s2), sum(s3) from root.sg.d group by 
variation(s6, ignoreNull=false)
-
+```
 ##### delta!=0时的差值事件分段
-
+```sql
 select __endTime, avg(s1), count(s2), sum(s3) from root.sg.d group by 
variation(s6, 4)
-
+```
 #### 条件分段聚合
-
+```sql
 group by condition(predict,[keep>/>=/=/<=/<]threshold,[,ignoreNull=true/false])
-
+```
 查询至少连续两行以上的charging_status=1的数据
-
+```sql
 select max_time(charging_status),count(vehicle_status),last_value(soc) from 
root.** group by condition(charging_status=1,KEEP>=2,ignoreNull=true)
-
+```
 当设置`ignoreNull`为false时,遇到null值为将其视为一个不满足条件的行,得到结果原先的分组被含null的行拆分
-
+```sql
 select max_time(charging_status),count(vehicle_status),last_value(soc) from 
root.** group by condition(charging_status=1,KEEP>=2,ignoreNull=false)
-
+```
 #### 会话分段聚合
-
+```sql
 group by session(timeInterval)
-
+```
 按照不同的时间单位设定时间间隔
-
+```sql
 select __endTime,count(*) from root.** group by session(1d)
-
+```
 和`HAVING`、`ALIGN BY DEVICE`共同使用
-
+```sql
 select __endTime,sum(hardware) from root.ln.wf02.wt01 group by session(50s) 
having sum(hardware)>0 align by device
-
+```
 #### 点数分段聚合
-
+```sql
 group by count(controlExpression, size[,ignoreNull=true/false])
-
+```
 select count(charging_stauts), first_value(soc) from root.sg group by 
count(charging_status,5) 
 
 当使用ignoreNull将null值也考虑进来
-
+```sql
 select count(charging_stauts), first_value(soc) from root.sg group by 
count(charging_status,5,ignoreNull=false) 
-
+```
 ### 5、聚合结果过滤
 
 不正确的:
-
+```sql
 select count(s1) from root.** group by ([1,3),1ms) having sum(s1) > s1
 
 select count(s1) from root.** group by ([1,3),1ms) having s1 > 1
@@ -793,103 +803,103 @@ select count(s1) from root.** group by ([1,3),1ms) 
having s1 > 1
 select count(s1) from root.** group by ([1,3),1ms), level=1 having sum(d1.s1) 
> 1
 
 select count(d1.s1) from root.** group by ([1,3),1ms), level=1 having sum(s1) 
> 1
-
+```
 SQL 示例:
-
+```sql
  select count(s1) from root.** group by ([1,11),2ms), level=1 having count(s2) 
> 2;
 
  select count(s1), count(s2) from root.** group by ([1,11),2ms) having 
count(s2) > 1 align by device;
-
+```
 ### 6、结果集补空值
-
+```sql
 FILL '(' PREVIOUS | LINEAR | constant ')'
-
+```
 #### `PREVIOUS` 填充
-
+```sql
 select temperature, status from root.sgcc.wf03.wt01 where time >= 
2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(previous);
-
+```
 #### `LINEAR` 填充
-
+```sql
 select temperature, status from root.sgcc.wf03.wt01 where time >= 
2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(linear);
-
+```
 #### 常量填充
-
+```sql
 select temperature, status from root.sgcc.wf03.wt01 where time >= 
2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(2.0);
-
+```
 使用 `BOOLEAN` 类型的常量填充
-
+```sql
 select temperature, status from root.sgcc.wf03.wt01 where time >= 
2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(true);
-
+```
 ### 7、查询结果分页
 
 #### 按行分页
 
  基本的 `LIMIT` 子句
-
+```sql
 select status, temperature from root.ln.wf01.wt01 limit 10
-
+```
 带 `OFFSET` 的 `LIMIT` 子句
-
+```sql
 select status, temperature from root.ln.wf01.wt01 limit 5 offset 3
-
+```
 `LIMIT` 子句与 `WHERE` 子句结合
-
+```sql
 select status,temperature from root.ln.wf01.wt01 where time > 
2017-11-01T00:05:00.000 and time< 2017-11-01T00:12:00.000 limit 5 offset 3
-
+```
  `LIMIT` 子句与 `GROUP BY` 子句组合
-
+```sql
 select count(status), max_value(temperature) from root.ln.wf01.wt01 group by 
([2017-11-01T00:00:00, 2017-11-07T23:00:00),1d) limit 4 offset 3
-
+```
 #### 按列分页
 
  基本的 `SLIMIT` 子句
-
+```sql
 select * from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time 
< 2017-11-01T00:12:00.000 slimit 1
-
+```
 带 `SOFFSET` 的 `SLIMIT` 子句
-
+```sql
 select * from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time 
< 2017-11-01T00:12:00.000 slimit 1 soffset 1
-
+```
 `SLIMIT` 子句与 `GROUP BY` 子句结合
-
+```sql
 select max_value(*) from root.ln.wf01.wt01 group by ([2017-11-01T00:00:00, 
2017-11-07T23:00:00),1d) slimit 1 soffset 1
-
+```
 `SLIMIT` 子句与 `LIMIT` 子句结合
-
+```sql
 select * from root.ln.wf01.wt01 limit 10 offset 100 slimit 2 soffset 0
-
+```
 ### 8、排序
 
 时间对齐模式下的排序
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 order by time desc;
-
+```
 设备对齐模式下的排序
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 order by device 
desc,time asc align by device;
-
+```
 在时间戳相等时按照设备名排序
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 order by time 
asc,device desc align by device;
-
+```
 没有显式指定时
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 align by device;
-
+```
 对聚合后的结果进行排序
-
+```sql
 select count(*) from root.ln.** group by 
((2017-11-01T00:00:00.000+08:00,2017-11-01T00:03:00.000+08:00],1m) order by 
device asc,time asc align by device
-
+```
 ### 9、查询对齐模式
 
 #### 按设备对齐
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 align by device;
-
+```
 ### 10、查询写回(SELECT INTO)
 
 #### 整体描述
-
+```sql
 selectIntoStatement
 
 ​    : SELECT
@@ -919,23 +929,23 @@ intoItem
 ​    : [ALIGNED] intoDevicePath '(' intoMeasurementName [',' 
intoMeasurementName]* ')'
 
 ​    ;
-
+```
 按时间对齐,将 `root.sg` database 下四条序列的查询结果写入到 `root.sg_copy` database 下指定的四条序列中
-
+```sql
 IoTDB> select s1, s2 into root.sg_copy.d1(t1), root.sg_copy.d2(t1, t2), 
root.sg_copy.d1(t2) from root.sg.d1, root.sg.d2;
-
+```
 按时间对齐,将聚合查询的结果存储到指定序列中
-
+```sql
 IoTDB> select count(s1 + s2), last_value(s2) into root.agg.count(s1_add_s2), 
root.agg.last_value(s2) from root.sg.d1 group by ([0, 100), 10ms);
-
+```
 按设备对齐
-
+```sql
 IoTDB> select s1, s2 into root.sg_copy.d1(t1, t2), root.sg_copy.d2(t1, t2) 
from root.sg.d1, root.sg.d2 align by device;
-
+```
 按设备对齐,将表达式计算的结果存储到指定序列中
-
+```sql
 IoTDB> select s1 + s2 into root.expr.add(d1s1_d1s2), root.expr.add(d2s1_d2s2) 
from root.sg.d1, root.sg.d2 align by device;
-
+```
 #### 使用变量占位符
 
 ##### 按时间对齐(默认)
@@ -1017,11 +1027,11 @@ select s1, s2 into root.sg_copy.d1(t1, t2), aligned 
root.sg_copy.d2(t1, t2) from
 
 ## 运算符
 
-更多见文档[Operator-and-Expression](../User-Manual/Operator-and-Expression.md)
+更多见文档[Operator-and-Expression](../Reference/Function-and-Expression.md#算数运算符和函数)
 
 ### 算数运算符
 
-更多见文档 [Arithmetic Operators and 
Functions](../Operators-Functions/Mathematical.md)
+更多见文档 [Arithmetic Operators and 
Functions](../Reference/Function-and-Expression.md#算数运算符和函数)
 
 ```sql
 select s1, - s1, s2, + s2, s1 + s2, s1 - s2, s1 * s2, s1 / s2, s1 % s2 from 
root.sg.d1
@@ -1029,7 +1039,7 @@ select s1, - s1, s2, + s2, s1 + s2, s1 - s2, s1 * s2, s1 
/ s2, s1 % s2 from root
 
 ### 比较运算符
 
-更多见文档[Comparison Operators and Functions](../Operators-Functions/Comparison.md)
+更多见文档[Comparison Operators and 
Functions](../Reference/Function-and-Expression.md#比较运算符和函数)
 
 ```sql
 # Basic comparison operators
@@ -1060,7 +1070,7 @@ select a, a in (1, 2) from root.test;
 
 ### 逻辑运算符
 
-更多见文档[Logical Operators](../Operators-Functions/Logical.md)
+更多见文档[Logical Operators](../Reference/Function-and-Expression.md#逻辑运算符)
 
 ```sql
 select a, b, a > 10, a <= b, !(a <= b), a > 10 && a > b from root.test;
@@ -1068,11 +1078,11 @@ select a, b, a > 10, a <= b, !(a <= b), a > 10 && a > b 
from root.test;
 
 ## 内置函数
 
-更多见文档[Operator-and-Expression](../User-Manual/Operator-and-Expression.md)
+更多见文档[Operator-and-Expression](../Reference/Function-and-Expression.md#聚合函数)
 
 ### Aggregate Functions
 
-更多见文档[Aggregate Functions](../Operators-Functions/Aggregation.md)
+更多见文档[Aggregate Functions](../Reference/Function-and-Expression.md#聚合函数)
 
 ```sql
 select count(status) from root.ln.wf01.wt01;
@@ -1085,7 +1095,7 @@ select time_duration(s1) from root.db.d1;
 
 ### 算数函数
 
-更多见文档[Arithmetic Operators and 
Functions](../Operators-Functions/Mathematical.md)
+更多见文档[Arithmetic Operators and 
Functions](../Reference/Function-and-Expression.md#数学函数)
 
 ```sql
 select s1, sin(s1), cos(s1), tan(s1) from root.sg1.d1 limit 5 offset 1000;
@@ -1094,7 +1104,7 @@ select s4,round(s4),round(s4,2),round(s4,-1) from 
root.sg1.d1;
 
 ### 比较函数
 
-更多见文档[Comparison Operators and Functions](../Operators-Functions/Comparison.md)
+更多见文档[Comparison Operators and 
Functions](../Reference/Function-and-Expression.md#比较运算符和函数)
 
 ```sql
 select ts, on_off(ts, 'threshold'='2') from root.test;
@@ -1103,7 +1113,7 @@ select ts, in_range(ts, 'lower'='2', 'upper'='3.1') from 
root.test;
 
 ### 字符串处理函数
 
-更多见文档[String Processing](../Operators-Functions/String.md)
+更多见文档[String Processing](../Reference/Function-and-Expression.md#字符串处理)
 
 ```sql
 select s1, string_contains(s1, 's'='warn') from root.sg1.d4;
@@ -1131,7 +1141,7 @@ select regexsplit(s1, "regex"=",", "index"="3") from 
root.test.d1
 
 ### 数据类型转换函数
 
-更多见文档[Data Type Conversion Function](../Operators-Functions/Conversion.md)
+更多见文档[Data Type Conversion 
Function](../Reference/Function-and-Expression.md#数据类型转换)
 
 ```sql
 SELECT cast(s1 as INT32) from root.sg
@@ -1139,7 +1149,7 @@ SELECT cast(s1 as INT32) from root.sg
 
 ### 常序列生成函数
 
-更多见文档[Constant Timeseries Generating 
Functions](../Operators-Functions/Constant.md)
+更多见文档[Constant Timeseries Generating 
Functions](../Reference/Function-and-Expression.md#常序列生成函数)
 
 ```sql
 select s1, s2, const(s1, 'value'='1024', 'type'='INT64'), pi(s2), e(s1, s2) 
from root.sg1.d1; 
@@ -1147,7 +1157,7 @@ select s1, s2, const(s1, 'value'='1024', 'type'='INT64'), 
pi(s2), e(s1, s2) from
 
 ### 选择函数
 
-更多见文档[Selector Functions](../Operators-Functions/Selection.md)
+更多见文档[Selector Functions](../Reference/Function-and-Expression.md#选择函数)
 
 ```sql
 select s1, top_k(s1, 'k'='2'), bottom_k(s1, 'k'='2') from root.sg1.d2 where 
time > 2020-12-10T20:36:15.530+08:00;
@@ -1155,7 +1165,7 @@ select s1, top_k(s1, 'k'='2'), bottom_k(s1, 'k'='2') from 
root.sg1.d2 where time
 
 ### 区间查询函数
 
-更多见文档[Continuous Interval 
Functions](../Operators-Functions/Continuous-Interval.md)
+更多见文档[Continuous Interval 
Functions](../Reference/Function-and-Expression.md#区间查询函数)
 
 ```sql
 select s1, zero_count(s1), non_zero_count(s2), zero_duration(s3), 
non_zero_duration(s4) from root.sg.d2;
@@ -1163,7 +1173,7 @@ select s1, zero_count(s1), non_zero_count(s2), 
zero_duration(s3), non_zero_durat
 
 ### 趋势计算函数
 
-更多见文档[Variation Trend Calculation 
Functions](../Operators-Functions/Variation-Trend.md)
+更多见文档[Variation Trend Calculation 
Functions](../Reference/Function-and-Expression.md#趋势计算函数)
 
 ```sql
 select s1, time_difference(s1), difference(s1), non_negative_difference(s1), 
derivative(s1), non_negative_derivative(s1) from root.sg1.d1 limit 5 offset 
1000; 
@@ -1174,7 +1184,11 @@ SELECT DIFF(s1, 'ignoreNull'='false'), DIFF(s2, 
'ignoreNull'='false') from root.
 
 ### 采样函数
 
-更多见文档[Sample Functions](../Operators-Functions/Sample.md)
+更多见文档[Sample Functions](../Reference/Function-and-Expression.md#采样函数)。
+### 时间序列处理函数
+
+| 函数名        | 输入序列类型                   | 参数 | 输出序列类型             | 功能描述       
            |
+| ---)
 
 ```sql
 select equal_size_bucket_random_sample(temperature,'proportion'='0.1') as 
random_sample from root.ln.wf01.wt01;
@@ -1188,7 +1202,7 @@ select M4(s1,'windowSize'='10') from root.vehicle.d1
 
 ### 时间序列处理函数
 
-更多见文档[Time-Series](../Operators-Functions/Time-Series.md)
+更多见文档[Time-Series](../Reference/Function-and-Expression.md#时间序列处理)
 
 ```sql
 select change_points(s1), change_points(s2), change_points(s3), 
change_points(s4), change_points(s5), change_points(s6) from 
root.testChangePoints.d1
@@ -1196,11 +1210,11 @@ select change_points(s1), change_points(s2), 
change_points(s3), change_points(s4
 
 ## 数据质量函数库
 
-更多见文档[Operator-and-Expression](../User-Manual/Operator-and-Expression.md)
+更多见文档[Operator-and-Expression](../Reference/UDF-Libraries.md)
 
 ### 数据质量
 
-更多见文档[Data-Quality](../Operators-Functions/Data-Quality.md)
+更多见文档[Data-Quality](../Reference/UDF-Libraries.md#数据质量)
 
 ```sql
 # Completeness
@@ -1225,7 +1239,7 @@ select Accuracy(t1,t2,t3,m1,m2,m3) from root.test
 
 ### 数据画像
 
-更多见文档[Data-Profiling](../Operators-Functions/Data-Profiling.md)
+更多见文档[Data-Profiling](../Reference/UDF-Libraries.md#数据画像)
 
 ```sql
 # ACF
@@ -1305,7 +1319,7 @@ select zscore(s1) from root.test
 
 ### 异常检测
 
-更多见文档[Anomaly-Detection](../Operators-Functions/Anomaly-Detection.md)
+更多见文档[Anomaly-Detection](../Reference/UDF-Libraries.md#异常检测)
 
 ```sql
 # IQR
@@ -1340,7 +1354,7 @@ select 
MasterDetect(lo,la,m_lo,m_la,model,'output_type'='anomaly','p'='3','k'='3
 
 ### 频域分析
 
-更多见文档[Frequency-Domain](../Operators-Functions/Frequency-Domain.md)
+更多见文档[Frequency-Domain](../Reference/UDF-Libraries.md#频域分析)
 
 ```sql
 # Conv
@@ -1369,7 +1383,7 @@ select lowpass(s1,'wpass'='0.45') from root.test.d1
 
 ### 数据匹配
 
-更多见文档[Data-Matching](../Operators-Functions/Data-Matching.md)
+更多见文档[Data-Matching](../Reference/UDF-Libraries.md#数据匹配)
 
 ```sql
 # Cov
@@ -1390,7 +1404,7 @@ select xcorr(s1, s2) from root.test.d1 where time <= 
2020-01-01 00:00:05
 
 ### 数据修复
 
-更多见文档[Data-Repairing](../Operators-Functions/Data-Repairing.md)
+更多见文档[Data-Repairing](../Reference/UDF-Libraries.md#数据修复)
 
 ```sql
 # TimestampRepair
@@ -1415,7 +1429,7 @@ select seasonalrepair(s1,'method'='improved','period'=3) 
from root.test.d2
 
 ### 序列发现
 
-更多见文档[Series-Discovery](../Operators-Functions/Series-Discovery.md)
+更多见文档[Series-Discovery](../Reference/UDF-Libraries.md#序列发现)
 
 ```sql
 # ConsecutiveSequences
@@ -1428,7 +1442,7 @@ select consecutivewindows(s1,s2,'length'='10m') from 
root.test.d1
 
 ### 机器学习
 
-更多见文档[Machine-Learning](../Operators-Functions/Machine-Learning.md)
+更多见文档[Machine-Learning](../Reference/UDF-Libraries.md#机器学习)
 
 ```sql
 # AR
@@ -1443,7 +1457,7 @@ select rm(s0, s1,"tb"="3","vb"="2") from root.test.d0
 
 ## Lambda 表达式
 
-更多见文档[Lambda](../Operators-Functions/Lambda.md)
+更多见文档[Lambda](../Reference/Function-and-Expression.md#Lambda表达式)
 
 ```sql
 select jexl(temperature, 'expr'='x -> {x + x}') as jexl1, jexl(temperature, 
'expr'='x -> {x * 3}') as jexl2, jexl(temperature, 'expr'='x -> {x * x}') as 
jexl3, jexl(temperature, 'expr'='x -> {multiply(x, 100)}') as jexl4, 
jexl(temperature, st, 'expr'='(x, y) -> {x + y}') as jexl5, jexl(temperature, 
st, str, 'expr'='(x, y, z) -> {x + y + z}') as jexl6 from root.ln.wf01.wt01;```
@@ -1451,7 +1465,7 @@ select jexl(temperature, 'expr'='x -> {x + x}') as jexl1, 
jexl(temperature, 'exp
 
 ## 条件表达式
 
-更多见文档[Conditional Expressions](../Operators-Functions/Conditional.md)
+更多见文档[Conditional Expressions](../Reference/Function-and-Expression.md#条件表达式)
 
 ```sql
 select T, P, case
@@ -1490,7 +1504,7 @@ from root.test4
 ## 触发器
 
 ### 使用 SQL 语句注册该触发器
-
+```sql
 // Create Trigger
 
 createTrigger
@@ -1546,9 +1560,9 @@ triggerAttribute
 ​    : key=attributeKey operator_eq value=attributeValue
 
 ​    ;
-
+```
 #### SQL 语句示例
-
+```sql
 CREATE STATELESS TRIGGER triggerTest
 
 BEFORE INSERT
@@ -1566,11 +1580,11 @@ WITH (
 ​    "limit" = "100"
 
 )
-
+```
 ### 卸载触发器
 
 #### 卸载触发器的 SQL 语法如下:
-
+```sql
 // Drop Trigger
 
 dropTrigger
@@ -1578,15 +1592,15 @@ dropTrigger
   : DROP TRIGGER triggerName=identifier
 
 ;
-
+```
 #### 示例语句
-
+```sql
 DROP TRIGGER triggerTest1
-
+```
 ### 查询触发器
-
+```sql
 SHOW TRIGGERS
-
+```
 ## 连续查询(Continuous Query, CQ)
 
 ### 语法
@@ -1613,7 +1627,7 @@ END
 ```
 
 #### 配置连续查询执行的周期性间隔
-
+```sql
 CREATE CONTINUOUS QUERY cq1
 
 RESAMPLE EVERY 20s
@@ -1633,9 +1647,9 @@ END
 
 
 \> SELECT temperature_max from root.ln.*.*;
-
+```
 #### 配置连续查询的时间窗口大小
-
+```
 CREATE CONTINUOUS QUERY cq2
 
 RESAMPLE RANGE 40s
@@ -1653,11 +1667,10 @@ BEGIN
 END
 
 
-
 \> SELECT temperature_max from root.ln.*.*;
-
+```
 #### 同时配置连续查询执行的周期性间隔和时间窗口大小
-
+```sql
 CREATE CONTINUOUS QUERY cq3
 
 RESAMPLE EVERY 20s RANGE 40s
@@ -1679,9 +1692,9 @@ END
 
 
 \> SELECT temperature_max from root.ln.*.*;
-
+```
 #### 配置连续查询每次查询执行时间窗口的结束时间
-
+```sql
 CREATE CONTINUOUS QUERY cq4
 
 RESAMPLE EVERY 20s RANGE 40s, 20s
@@ -1703,9 +1716,9 @@ END
 
 
 \> SELECT temperature_max from root.ln.*.*;
-
+```
 #### 没有GROUP BY TIME子句的连续查询
-
+```sql
 CREATE CONTINUOUS QUERY cq5
 
 RESAMPLE EVERY 20s
@@ -1725,31 +1738,32 @@ END
 
 
 \> SELECT temperature from root.precalculated_sg.*.* align by device;
-
+```
 ### 连续查询的管理
 
 #### 查询系统已有的连续查询
 
 展示集群中所有的已注册的连续查询
-
+```sql
 SHOW (CONTINUOUS QUERIES | CQS) 
-
+```
+```sql
 SHOW CONTINUOUS QUERIES;
-
+```
 #### 删除已有的连续查询
 
 删除指定的名为cq_id的连续查询:
 
-```Go
+```sql
 DROP (CONTINUOUS QUERY | CQ) <cq_id>
 ```
-
+```sql
 DROP CONTINUOUS QUERY s1_count_cq;
-
+```
 #### 作为子查询的替代品
 
-\1. 创建一个连续查询
-
+1. 创建一个连续查询
+```sql
 CREATE CQ s1_count_cq 
 
 BEGIN 
@@ -1763,49 +1777,50 @@ BEGIN
 ​        GROUP BY(30m)
 
 END
-
+```
 1. 查询连续查询的结果
-
+```sql
 SELECT avg(count_s1) from root.sg_count.d;
-
+```
 ## 用户自定义函数
 
 ### UDFParameters
-
+```sql
 SELECT UDF(s1, s2, 'key1'='iotdb', 'key2'='123.45') FROM root.sg.d;
-
+```
 ### UDF 注册
 
-```Go
+```sql
 CREATE FUNCTION <UDF-NAME> AS <UDF-CLASS-FULL-PATHNAME> (USING URI URI-STRING)?
 ```
 
 #### 不指定URI
-
+```sql
 CREATE FUNCTION example AS 'org.apache.iotdb.udf.UDTFExample'
-
+```
 #### 指定URI
-
+```sql
 CREATE FUNCTION example AS 'org.apache.iotdb.udf.UDTFExample' USING URI 
'http://jar/example.jar'
-
+```
 ### UDF 卸载
 
-```Go
+```sql
 DROP FUNCTION <UDF-NAME>
 ```
-
+```sql
 DROP FUNCTION example
-
+```
 ### UDF 查询
 
 #### 带自定义输入参数的查询
-
+```sql
 SELECT example(s1, 'key1'='value1', 'key2'='value2'), example(*, 
'key3'='value3') FROM root.sg.d1;
-
+```
+```sql
 SELECT example(s1, s2, 'key1'='value1', 'key2'='value2') FROM root.sg.d1;
-
+```
 #### 与其他查询的嵌套查询
-
+```sql
 SELECT s1, s2, example(s1, s2) FROM root.sg.d1;
 
 SELECT *, example(*) FROM root.sg.d1 DISABLE ALIGN;
@@ -1813,11 +1828,11 @@ SELECT *, example(*) FROM root.sg.d1 DISABLE ALIGN;
 SELECT s1 * example(* / s1 + s2) FROM root.sg.d1;
 
 SELECT s1, s2, s1 + example(s1, s2), s1 - example(s1 + example(s1, s2) / s2) 
FROM root.sg.d1;
-
+```
 ### 查看所有注册的 UDF
-
+```sql
 SHOW FUNCTIONS
-
+```
 ## 权限管理
 
 ### 用户与角色相关
diff --git a/src/zh/UserGuide/Master/User-Manual/IoTDB-View_timecho.md 
b/src/zh/UserGuide/Master/User-Manual/IoTDB-View_timecho.md
index 8ee4a0d..54eef71 100644
--- a/src/zh/UserGuide/Master/User-Manual/IoTDB-View_timecho.md
+++ b/src/zh/UserGuide/Master/User-Manual/IoTDB-View_timecho.md
@@ -308,7 +308,7 @@ AS
     SELECT temperature FROM root.db.*
 ```
 
-这里仿照了查询写回(`SELECT INTO`)对命名规则的约定,使用变量占位符来指定命名规则。可以参考:[查询写回(SELECT 
INTO)](https://iotdb.apache.org/zh/UserGuide/Master/Query-Data/Select-Into.html)
+这里仿照了查询写回(`SELECT INTO`)对命名规则的约定,使用变量占位符来指定命名规则。可以参考:[查询写回(SELECT 
INTO)](../User-Manual/Query-Data.md#查询写回(INTO-子句))
 
 这里`root.db.*.temperature`指定了有哪些时间序列会被包含在视图中;`${2}`则指定了从时间序列中的哪个节点提取出名字来命名序列视图。
 
diff --git a/src/zh/UserGuide/Master/User-Manual/Operate-Metadata.md 
b/src/zh/UserGuide/Master/User-Manual/Operate-Metadata.md
index f21109b..6444f46 100644
--- a/src/zh/UserGuide/Master/User-Manual/Operate-Metadata.md
+++ b/src/zh/UserGuide/Master/User-Manual/Operate-Metadata.md
@@ -46,7 +46,7 @@ Database 节点名只支持中英文字符、数字、下划线的组合,如
 
 ### 查看数据库
 
-在 database 创建后,我们可以使用 [SHOW DATABASES](../Reference/SQL-Reference.md) 语句和 
[SHOW DATABASES \<PathPattern>](../Reference/SQL-Reference.md) 来查看 database,SQL 
语句如下所示:
+在 database 创建后,我们可以使用 [SHOW DATABASES](../SQL-Manual/SQL-Manual.md#查看数据库) 语句和 
[SHOW DATABASES \<PathPattern>](../SQL-Manual/SQL-Manual.md#查看数据库) 来查看 
database,SQL 语句如下所示:
 
 ```
 IoTDB> show databases
@@ -552,7 +552,7 @@ IoTDB> create timeseries root.ln.wf02.wt02.status WITH 
DATATYPE=BOOLEAN, ENCODIN
 error: encoding TS_2DIFF does not support BOOLEAN
 ```
 
-详细的数据类型与编码方式的对应列表请参见 [编码方式](../Basic-Concept/Encoding.md)。
+详细的数据类型与编码方式的对应列表请参见 [编码方式](../Basic-Concept/Encoding-and-Compression.md)。
 
 ### 创建对齐时间序列
 
diff --git a/src/zh/UserGuide/Master/User-Manual/Operator-and-Expression.md 
b/src/zh/UserGuide/Master/User-Manual/Operator-and-Expression.md
index dd9866e..3ff9f86 100644
--- a/src/zh/UserGuide/Master/User-Manual/Operator-and-Expression.md
+++ b/src/zh/UserGuide/Master/User-Manual/Operator-and-Expression.md
@@ -226,6 +226,7 @@ OR, |, ||
 | EQUAL_SIZE_BUCKET_OUTLIER_SAMPLE   | INT32 / INT64 / FLOAT / DOUBLE | 
`proportion`取值范围为`(0, 
1]`,默认为`0.1`<br>`type`取值为`avg`或`stendis`或`cos`或`prenextdis`,默认为`avg`<br>`number`取值应大于0,默认`3`|
 INT32 / INT64 / FLOAT / DOUBLE | 返回符合采样比例和桶内采样个数的等分桶离群值采样                |
 | M4     | INT32 / INT64 / FLOAT / DOUBLE | 
包含固定点数的窗口和滑动时间窗口使用不同的属性参数。包含固定点数的窗口使用属性`windowSize`和`slidingStep`。滑动时间窗口使用属性`timeInterval`、`slidingStep`、`displayWindowBegin`和`displayWindowEnd`。更多细节见下文。
 | INT32 / INT64 / FLOAT / DOUBLE | 
返回每个窗口内的第一个点(`first`)、最后一个点(`last`)、最小值点(`bottom`)、最大值点(`top`)。在一个窗口内的聚合点输出之前,M4会将它们按照时间戳递增排序并且去重。
 |
 
+详细说明及示例见文档 [采样函数](../Reference/Function-and-Expression.md#采样函数)。
 ### 时间序列处理函数
 
 | 函数名        | 输入序列类型                   | 参数 | 输出序列类型             | 功能描述       
            |
@@ -266,7 +267,7 @@ OR, |, ||
 | ------ | ----------------------------------------------- | 
------------------------------------------------------------ | 
----------------------------------------------- | 
---------------------------------------------- |
 | JEXL   | INT32 / INT64 / FLOAT / DOUBLE / TEXT / BOOLEAN | 
`expr`是一个支持标准的一元或多元参数的lambda表达式,符合`x -> {...}`或`(x, y, z) -> {...}`的格式,例如`x -> 
{x * 2}`, `(x, y, z) -> {x + y * z}` | INT32 / INT64 / FLOAT / DOUBLE / TEXT / 
BOOLEAN | 返回将输入的时间序列通过lambda表达式变换的序列 |
 
-详细说明及示例见文档 [Lambda 表达式](../Operators-Functions/Lambda.md)
+详细说明及示例见文档 [Lambda 表达式](../Reference/Function-and-Expression.md#Lambda表达式)
 
 ## 条件表达式
 
@@ -274,7 +275,7 @@ OR, |, ||
 |---------------------------|-----------|
 | `CASE` | 类似if else |
 
-详细说明及示例见文档 [条件表达式](../Operators-Functions/Conditional.md)
+详细说明及示例见文档 [条件表达式](../Reference/Function-and-Expression.md#条件表达式)
 
 ## SELECT 表达式
 
@@ -312,7 +313,7 @@ select s1 as temperature, s2 as speed from 
root.ln.wf01.wt01;
 
 #### 运算符
 
-IoTDB 中支持的运算符列表见文档 [运算符和函数](../Operators-Functions/Overview.md)。
+IoTDB 中支持的运算符列表见文档 [运算符和函数](../Reference/Function-and-Expression.md#算数运算符和函数)。
 
 #### 函数
 
@@ -330,7 +331,7 @@ select sin(s1), count(s1) from root.sg.d1;
 select s1, count(s1) from root.sg.d1 group by ([10,100),10ms);
 ```
 
-IoTDB 支持的聚合函数见文档 [聚合函数](../Operators-Functions/Aggregation.md)。
+IoTDB 支持的聚合函数见文档 [聚合函数](../Reference/Function-and-Expression.md#聚合函数)。
 
 ##### 时间序列生成函数
 
@@ -340,11 +341,11 @@ IoTDB 支持的聚合函数见文档 [聚合函数](../Operators-Functions/Aggre
 
 ###### 内置时间序列生成函数
 
-IoTDB 中支持的内置函数列表见文档 [运算符和函数](../Operators-Functions/Overview.md)。
+IoTDB 中支持的内置函数列表见文档 [运算符和函数](../Reference/Function-and-Expression.md#算数运算符)。
 
 ###### 自定义时间序列生成函数
 
-IoTDB 支持通过用户自定义函数(点击查看: 
[用户自定义函数](../Operators-Functions/User-Defined-Function.md) )能力进行函数功能扩展。
+IoTDB 支持通过用户自定义函数(点击查看: [用户自定义函数](../Reference/UDF-Libraries.md) )能力进行函数功能扩展。
 
 #### 嵌套表达式举例
 
diff --git 
a/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Environmental-Requirement.md
 b/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Preparation.md
similarity index 100%
rename from 
src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Environmental-Requirement.md
rename to 
src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Preparation.md
diff --git 
a/src/zh/UserGuide/latest/Deployment-and-Maintenance/Environmental-Requirement.md
 b/src/zh/UserGuide/latest/Deployment-and-Maintenance/Deployment-Preparation.md
similarity index 95%
rename from 
src/zh/UserGuide/latest/Deployment-and-Maintenance/Environmental-Requirement.md
rename to 
src/zh/UserGuide/latest/Deployment-and-Maintenance/Deployment-Preparation.md
index 60b6fce..c5dca58 100644
--- 
a/src/zh/UserGuide/latest/Deployment-and-Maintenance/Environmental-Requirement.md
+++ 
b/src/zh/UserGuide/latest/Deployment-and-Maintenance/Deployment-Preparation.md
@@ -34,3 +34,8 @@
 
 > **# Linux** <br>`sudo sysctl -w net.core.somaxconn=65535` <br>**# FreeBSD 或 
 > Darwin** <br>`sudo sysctl -w kern.ipc.somaxconn=65535`
 
+## 安装包获取
+
+企业版安装包可经由商务获取。
+
+
diff --git a/src/zh/UserGuide/latest/Reference/Function-and-Expression.md 
b/src/zh/UserGuide/latest/Reference/Function-and-Expression.md
index aa4f4ec..6b126e5 100644
--- a/src/zh/UserGuide/latest/Reference/Function-and-Expression.md
+++ b/src/zh/UserGuide/latest/Reference/Function-and-Expression.md
@@ -2651,3 +2651,348 @@ Total line number = 11
 It costs 0.118s
 ```
 
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+## 条件表达式
+
+### CASE
+
+CASE表达式是一种条件表达式,可用于根据特定条件返回不同的值,功能类似于其它语言中的if-else。
+CASE表达式由以下部分组成:
+- CASE关键字:表示开始CASE表达式。
+- 
WHEN-THEN子句:可能存在多个,用于定义条件与给出结果。此子句又分为WHEN和THEN两个部分,WHEN部分表示条件,THEN部分表示结果表达式。如果WHEN条件为真,则返回对应的THEN结果。
+- ELSE子句:如果没有任何WHEN-THEN子句的条件为真,则返回ELSE子句中的结果。可以不存在ELSE子句。
+- END关键字:表示结束CASE表达式。
+
+CASE表达式是一种标量运算,可以配合任何其它的标量运算或聚合函数使用。
+
+下文把所有THEN部分和ELSE子句并称为结果子句。
+
+#### 语法示例
+
+CASE表达式支持两种格式。
+
+语法示例如下:
+- 格式1:
+```sql
+  CASE
+    WHEN condition1 THEN expression1
+    [WHEN condition2 THEN expression2] ...
+    [ELSE expression_end]
+  END
+```
+  从上至下检查WHEN子句中的condition。
+
+  condition为真时返回对应THEN子句中的expression,condition为假时继续检查下一个WHEN子句中的condition。
+- 格式2:
+```sql
+  CASE caseValue
+    WHEN whenValue1 THEN expression1
+    [WHEN whenValue2 THEN expression2] ...
+    [ELSE expression_end]
+  END
+```
+
+  从上至下检查WHEN子句中的whenValue是否与caseValue相等。
+
+  满足caseValue=whenValue时返回对应THEN子句中的expression,不满足时继续检查下一个WHEN子句中的whenValue。
+
+  格式2会被iotdb转换成等效的格式1,例如以上sql语句会转换成:
+```sql
+  CASE
+    WHEN caseValue=whenValue1 THEN expression1
+    [WHEN caseValue=whenValue1 THEN expression1] ...
+    [ELSE expression_end]
+  END
+```
+
+如果格式1中的condition均不为真,或格式2中均不满足caseVaule=whenValue,则返回ELSE子句中的expression_end;不存在ELSE子句则返回null。
+
+#### 注意事项
+
+- 格式1中,所有WHEN子句必须返回BOOLEAN类型。
+- 格式2中,所有WHEN子句必须能够与CASE子句进行判等。
+- 一个CASE表达式中所有结果子句的返回值类型需要满足一定的条件:
+  - BOOLEAN类型不能与其它类型共存,存在其它类型会报错。
+  - TEXT类型不能与其它类型共存,存在其它类型会报错。
+  - 其它四种数值类型可以共存,最终结果会为DOUBLE类型,转换过程可能会存在精度损失。
+- CASE表达式没有实现惰性计算,即所有子句都会被计算。
+- CASE表达式不支持与UDF混用。
+- CASE表达式内部不能存在聚合函数,但CASE表达式的结果可以提供给聚合函数。
+- 使用CLI时,由于CASE表达式字符串较长,推荐用as为表达式提供别名。
+
+#### 使用示例
+
+##### 示例1
+
+CASE表达式可对数据进行直观地分析,例如:
+
+- 某种化学产品的制备需要温度和压力都处于特定范围之内
+- 在制备过程中传感器会侦测温度和压力,在iotdb中形成T(temperature)和P(pressure)两个时间序列
+
+这种应用场景下,CASE表达式可以指出哪些时间的参数是合适的,哪些时间的参数不合适,以及为什么不合适。
+
+数据:
+```sql
+IoTDB> select * from root.test1
++-----------------------------+------------+------------+
+|                         Time|root.test1.P|root.test1.T|
++-----------------------------+------------+------------+
+|2023-03-29T11:25:54.724+08:00|   1000000.0|      1025.0|
+|2023-03-29T11:26:13.445+08:00|   1000094.0|      1040.0|
+|2023-03-29T11:27:36.988+08:00|   1000095.0|      1041.0|
+|2023-03-29T11:27:56.446+08:00|   1000095.0|      1059.0|
+|2023-03-29T11:28:20.838+08:00|   1200000.0|      1040.0|
++-----------------------------+------------+------------+
+```
+
+SQL语句:
+```sql
+select T, P, case
+when 1000<T and T<1050 and 1000000<P and P<1100000 then "good!"
+when T<=1000 or T>=1050 then "bad temperature"
+when P<=1000000 or P>=1100000 then "bad pressure"
+end as `result`
+from root.test1
+```
+
+
+输出:
+```
++-----------------------------+------------+------------+---------------+
+|                         Time|root.test1.T|root.test1.P|         result|
++-----------------------------+------------+------------+---------------+
+|2023-03-29T11:25:54.724+08:00|      1025.0|   1000000.0|   bad pressure|
+|2023-03-29T11:26:13.445+08:00|      1040.0|   1000094.0|          good!|
+|2023-03-29T11:27:36.988+08:00|      1041.0|   1000095.0|          good!|
+|2023-03-29T11:27:56.446+08:00|      1059.0|   1000095.0|bad temperature|
+|2023-03-29T11:28:20.838+08:00|      1040.0|   1200000.0|   bad pressure|
++-----------------------------+------------+------------+---------------+
+```
+
+
+##### 示例2
+
+CASE表达式可实现结果的自由转换,例如将具有某种模式的字符串转换成另一种字符串。
+
+数据:
+```sql
+IoTDB> select * from root.test2
++-----------------------------+--------------+
+|                         Time|root.test2.str|
++-----------------------------+--------------+
+|2023-03-27T18:23:33.427+08:00|         abccd|
+|2023-03-27T18:23:39.389+08:00|         abcdd|
+|2023-03-27T18:23:43.463+08:00|       abcdefg|
++-----------------------------+--------------+
+```
+
+SQL语句:
+```sql
+select str, case
+when str like "%cc%" then "has cc"
+when str like "%dd%" then "has dd"
+else "no cc and dd" end as `result`
+from root.test2
+```
+
+输出:
+```
++-----------------------------+--------------+------------+
+|                         Time|root.test2.str|      result|
++-----------------------------+--------------+------------+
+|2023-03-27T18:23:33.427+08:00|         abccd|      has cc|
+|2023-03-27T18:23:39.389+08:00|         abcdd|      has dd|
+|2023-03-27T18:23:43.463+08:00|       abcdefg|no cc and dd|
++-----------------------------+--------------+------------+
+```
+
+##### 示例3:搭配聚合函数
+
+###### 合法:聚合函数←CASE表达式
+
+CASE表达式可作为聚合函数的参数。例如,与聚合函数COUNT搭配,可实现同时按多个条件进行数据统计。
+
+数据:
+```sql
+IoTDB> select * from root.test3
++-----------------------------+------------+
+|                         Time|root.test3.x|
++-----------------------------+------------+
+|2023-03-27T18:11:11.300+08:00|         0.0|
+|2023-03-27T18:11:14.658+08:00|         1.0|
+|2023-03-27T18:11:15.981+08:00|         2.0|
+|2023-03-27T18:11:17.668+08:00|         3.0|
+|2023-03-27T18:11:19.112+08:00|         4.0|
+|2023-03-27T18:11:20.822+08:00|         5.0|
+|2023-03-27T18:11:22.462+08:00|         6.0|
+|2023-03-27T18:11:24.174+08:00|         7.0|
+|2023-03-27T18:11:25.858+08:00|         8.0|
+|2023-03-27T18:11:27.979+08:00|         9.0|
++-----------------------------+------------+
+```
+
+SQL语句:
+
+```sql
+select
+count(case when x<=1 then 1 end) as `(-∞,1]`,
+count(case when 1<x and x<=3 then 1 end) as `(1,3]`,
+count(case when 3<x and x<=7 then 1 end) as `(3,7]`,
+count(case when 7<x then 1 end) as `(7,+∞)`
+from root.test3
+```
+
+输出:
+```
++------+-----+-----+------+
+|(-∞,1]|(1,3]|(3,7]|(7,+∞)|
++------+-----+-----+------+
+|     2|    2|    4|     2|
++------+-----+-----+------+
+```
+
+###### 非法:CASE表达式←聚合函数
+
+不支持在CASE表达式内部使用聚合函数。
+
+SQL语句:
+```sql
+select case when x<=1 then avg(x) else sum(x) end from root.test3
+```
+
+输出:
+```
+Msg: 701: Raw data and aggregation result hybrid calculation is not supported.
+```
+
+##### 示例4:格式2
+
+一个使用格式2的简单例子。如果所有条件都为判等,则推荐使用格式2,以简化SQL语句。
+
+数据:
+```sql
+IoTDB> select * from root.test4
++-----------------------------+------------+
+|                         Time|root.test4.x|
++-----------------------------+------------+
+|1970-01-01T08:00:00.001+08:00|         1.0|
+|1970-01-01T08:00:00.002+08:00|         2.0|
+|1970-01-01T08:00:00.003+08:00|         3.0|
+|1970-01-01T08:00:00.004+08:00|         4.0|
++-----------------------------+------------+
+```
+
+SQL语句:
+```sql
+select x, case x when 1 then "one" when 2 then "two" else "other" end from 
root.test4
+```
+
+输出:
+```
++-----------------------------+------------+-----------------------------------------------------------------------------------+
+|                         Time|root.test4.x|CASE WHEN root.test4.x = 1 THEN 
"one" WHEN root.test4.x = 2 THEN "two" ELSE "other"|
++-----------------------------+------------+-----------------------------------------------------------------------------------+
+|1970-01-01T08:00:00.001+08:00|         1.0|                                   
                                             one|
+|1970-01-01T08:00:00.002+08:00|         2.0|                                   
                                             two|
+|1970-01-01T08:00:00.003+08:00|         3.0|                                   
                                           other|
+|1970-01-01T08:00:00.004+08:00|         4.0|                                   
                                           other|
++-----------------------------+------------+-----------------------------------------------------------------------------------+
+```
+
+##### 示例5:结果子句类型
+
+CASE表达式的结果子句的返回值需要满足一定的类型限制。
+
+此示例中,继续使用示例4中的数据。
+
+###### 非法:BOOLEAN与其它类型共存
+
+SQL语句:
+```sql
+select x, case x when 1 then true when 2 then 2 end from root.test4
+```
+
+输出:
+```
+Msg: 701: CASE expression: BOOLEAN and other types cannot exist at same time
+```
+
+###### 合法:只存在BOOLEAN类型
+
+SQL语句:
+```sql
+select x, case x when 1 then true when 2 then false end as `result` from 
root.test4
+```
+
+输出:
+```
++-----------------------------+------------+------+
+|                         Time|root.test4.x|result|
++-----------------------------+------------+------+
+|1970-01-01T08:00:00.001+08:00|         1.0|  true|
+|1970-01-01T08:00:00.002+08:00|         2.0| false|
+|1970-01-01T08:00:00.003+08:00|         3.0|  null|
+|1970-01-01T08:00:00.004+08:00|         4.0|  null|
++-----------------------------+------------+------+
+```
+
+###### 非法:TEXT与其它类型共存
+
+SQL语句:
+```sql
+select x, case x when 1 then 1 when 2 then "str" end from root.test4
+```
+
+输出:
+```
+Msg: 701: CASE expression: TEXT and other types cannot exist at same time
+```
+
+###### 合法:只存在TEXT类型
+
+见示例1。
+
+###### 合法:数值类型共存
+
+SQL语句:
+```sql
+select x, case x
+when 1 then 1
+when 2 then 222222222222222
+when 3 then 3.3
+when 4 then 4.4444444444444
+end as `result`
+from root.test4
+```
+
+输出:
+```
++-----------------------------+------------+-------------------+
+|                         Time|root.test4.x|             result|
++-----------------------------+------------+-------------------+
+|1970-01-01T08:00:00.001+08:00|         1.0|                1.0|
+|1970-01-01T08:00:00.002+08:00|         2.0|2.22222222222222E14|
+|1970-01-01T08:00:00.003+08:00|         3.0|  3.299999952316284|
+|1970-01-01T08:00:00.004+08:00|         4.0|   4.44444465637207|
++-----------------------------+------------+-------------------+
+```
\ No newline at end of file
diff --git a/src/zh/UserGuide/latest/Reference/UDF-Libraries.md 
b/src/zh/UserGuide/latest/Reference/UDF-Libraries.md
index 6ec19b2..be45495 100644
--- a/src/zh/UserGuide/latest/Reference/UDF-Libraries.md
+++ b/src/zh/UserGuide/latest/Reference/UDF-Libraries.md
@@ -605,13 +605,13 @@ select Accuracy(t1,t2,t3,m1,m2,m3) from root.test
 
 #### 函数简介
 
-本函数用于计算时间序列的自相关函数值,即序列与自身之间的互相关函数,详情参见[XCorr](./Data-Matching.md#XCorr)函数文档。
+本函数用于计算时间序列的自相关函数值,即序列与自身之间的互相关函数。
 
 **函数名:** ACF
 
 **输入序列:** 仅支持单个输入序列,类型为 INT32 / INT64 / FLOAT / DOUBLE。
 
-**输出序列:** 输出单个序列,类型为 
DOUBLE。序列中共包含$2N-1$个数据点,每个值的具体含义参见[XCorr](./Data-Matching.md#XCorr)函数文档。
+**输出序列:** 输出单个序列,类型为 DOUBLE。序列中共包含$2N-1$个数据点。
 
 **提示:**
 
diff --git a/src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md 
b/src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md
index 83ebfe1..c46653f 100644
--- a/src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md
+++ b/src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md
@@ -202,32 +202,36 @@ show timeseries where TAGS(tag1)='v1'
 
 #### 查看路径的所有子路径
 
+```sql
 SHOW CHILD PATHS pathPattern
-
 - 查询 root.ln 的下一层:show child paths root.ln
 - 查询形如 root.xx.xx.xx 的路径:show child paths root.*.*
-
+```
 #### 查看路径的所有子节点
 
+```sql
 SHOW CHILD NODES pathPattern
 
 - 查询 root 的下一层:show child nodes root
 - 查询 root.ln 的下一层 :show child nodes root.ln
-
+```
 #### 查看设备
 
+```sql
 IoTDB> show devices
 
 IoTDB> show devices root.ln.**
-
+```
 ##### 查看设备及其 database 信息
 
+```sql
 IoTDB> show devices with database
 
 IoTDB> show devices root.ln.** with database
-
+```
 #### 统计节点数
 
+```sql
 IoTDB > COUNT NODES root.** LEVEL=2
 
 IoTDB > COUNT NODES root.ln.** LEVEL=2
@@ -235,15 +239,16 @@ IoTDB > COUNT NODES root.ln.** LEVEL=2
 IoTDB > COUNT NODES root.ln.wf01.* LEVEL=3
 
 IoTDB > COUNT NODES root.**.temperature LEVEL=3
-
+```
 #### 统计设备数量
 
+```sql
 IoTDB> show devices
 
 IoTDB> count devices
 
 IoTDB> count devices root.ln.**
-
+```
 ### 4、设备模板管理
 
 ![img](https://alioss.timecho.com/docs/img/%E6%A8%A1%E6%9D%BF.png)
@@ -265,19 +270,19 @@ CREATE SCHEMA TEMPLATE <templateName> ALIGNED? '(' 
<measurementId> <attributeCla
 ```
 
 创建包含两个非对齐序列的元数据模板
-
+```sql
 IoTDB> create schema template t1 (temperature FLOAT encoding=RLE, status 
BOOLEAN encoding=PLAIN compression=SNAPPY)
-
+```
 创建包含一组对齐序列的元数据模板
-
+```sql
 IoTDB> create schema template t2 aligned (lat FLOAT encoding=Gorilla, lon 
FLOAT encoding=Gorilla)
-
+```
 #### 挂载元数据模板
-
+```sql
 IoTDB> set SCHEMA TEMPLATE t1 to root.sg1
-
+```
 #### 激活元数据模板
-
+```sql
 IoTDB> create timeseries using SCHEMA TEMPLATE on root.sg1.d1
 
 IoTDB> set SCHEMA TEMPLATE t1 to root.sg1.d1
@@ -287,95 +292,108 @@ IoTDB> set SCHEMA TEMPLATE t2 to root.sg1.d2
 IoTDB> create timeseries using schema template on root.sg1.d1
 
 IoTDB> create timeseries using schema template on root.sg1.d2
-
+```
 #### 查看元数据模板
-
+```sql
 IoTDB> show schema templates
-
+```
 - 查看某个元数据模板下的物理量
-
+```sql
 IoTDB> show nodes in schema template t1
-
+```
 - 查看挂载了某个元数据模板的路径
-
+```sql
 IoTDB> show paths set schema template t1
-
+```
 - 查看使用了某个元数据模板的路径(即模板在该路径上已激活,序列已创建)
-
+```sql
 IoTDB> show paths using schema template t1
-
+```
 #### 解除元数据模板
-
+```sql
 IoTDB> delete timeseries of schema template t1 from root.sg1.d1
-
+```
+```sql
 IoTDB> deactivate schema template t1 from root.sg1.d1
-
+```
 批量处理
-
+```sql
 IoTDB> delete timeseries of schema template t1 from root.sg1.*, root.sg2.*
-
+```
+```sql
 IoTDB> deactivate schema template t1 from root.sg1.*, root.sg2.*
-
+```
 #### 卸载元数据模板
-
+```sql
 IoTDB> unset schema template t1 from root.sg1.d1
-
+```
 #### 删除元数据模板
-
+```sql
 IoTDB> drop schema template t1
-
+```
 ### 5、数据存活时间管理
 
 #### 设置 TTL
-
+```sql
 IoTDB> set ttl to root.ln 3600000
-
+```
+```sql
 IoTDB> set ttl to root.sgcc.** 3600000
-
+```
+```sql
 IoTDB> set ttl to root.** 3600000
-
+```
 #### 取消 TTL
-
+```sql
 IoTDB> unset ttl to root.ln
-
+```
+```sql
 IoTDB> unset ttl to root.sgcc.**
-
+```
+```sql
 IoTDB> unset ttl to root.**
+```
 
 #### 显示 TTL
-
+```sql
 IoTDB> SHOW ALL TTL
-
+```
+```sql
 IoTDB> SHOW TTL ON StorageGroupNames
-
+```
 ## 写入数据
 
 ### 1、写入单列数据
-
+```sql
 IoTDB > insert into root.ln.wf02.wt02(timestamp,status) values(1,true)
-
+```
+```sql
 IoTDB > insert into root.ln.wf02.wt02(timestamp,hardware) values(1, 'v1'),(2, 
'v1')
-
+```
 ### 2、写入多列数据
-
+```sql
 IoTDB > insert into root.ln.wf02.wt02(timestamp, status, hardware) values (2, 
false, 'v2')
-
+```
+```sql
 IoTDB > insert into root.ln.wf02.wt02(timestamp, status, hardware) VALUES (3, 
false, 'v3'),(4, true, 'v4')
-
+```
 ### 3、使用服务器时间戳
-
+```sql
 IoTDB > insert into root.ln.wf02.wt02(status, hardware) values (false, 'v2')
-
+```
 ### 4、写入对齐时间序列数据
-
+```sql
 IoTDB > create aligned timeseries root.sg1.d1(s1 INT32, s2 DOUBLE)
-
+```
+```sql
 IoTDB > insert into root.sg1.d1(timestamp, s1, s2) aligned values(1, 1, 1)
-
+```
+```sql
 IoTDB > insert into root.sg1.d1(timestamp, s1, s2) aligned values(2, 2, 2), 
(3, 3, 3)
-
+```
+```sql
 IoTDB > select * from root.sg1.d1
-
+```
 ### 5、加载 TsFile 文件数据
 
 load '<path/dir>' [sglevel=int][verify=true/false][onSuccess=delete/none]
@@ -403,93 +421,102 @@ load '<path/dir>' 
[sglevel=int][verify=true/false][onSuccess=delete/none]
 ## 删除数据
 
 ### 1、删除单列数据
-
+```sql
 delete from root.ln.wf02.wt02.status where time<=2017-11-01T16:26:00;
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time>=2017-01-01T00:00:00 and 
time<=2017-11-01T16:26:00;
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time < 10
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time <= 10
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time < 20 and time > 10
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time <= 20 and time >= 10
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time > 20
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time >= 20
-
+```
+```sql
 delete from root.ln.wf02.wt02.status where time = 20
-
+```
 出错:
-
+```sql
 delete from root.ln.wf02.wt02.status where time > 4 or time < 0
 
 Msg: 303: Check metadata error: For delete statement, where clause can only 
contain atomic
 
 expressions like : time > XXX, time <= XXX, or two atomic expressions 
connected by 'AND'
+```
 
 删除时间序列中的所有数据:
-
+```sql
 delete from root.ln.wf02.wt02.status
-
+```
 ### 2、删除多列数据
-
+```sql
 delete from root.ln.wf02.wt02.* where time <= 2017-11-01T16:26:00;
-
+```
 声明式的编程方式:
-
+```sql
 IoTDB> delete from root.ln.wf03.wt02.status where time < now()
 
 Msg: The statement is executed successfully.
-
+```
 ## 数据查询
 
 ### 1、基础查询
 
 #### 时间过滤查询
-
+```sql
 select temperature from root.ln.wf01.wt01 where time < 2017-11-01T00:08:00.000
-
+```
 #### 根据一个时间区间选择多列数据
-
+```sql
 select status, temperature from root.ln.wf01.wt01 where time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000;
-
+```
 #### 按照多个时间区间选择同一设备的多列数据
-
+```sql
 select status, temperature from root.ln.wf01.wt01 where (time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000) or (time >= 
2017-11-01T16:35:00.000 and time <= 2017-11-01T16:37:00.000);
-
+```
 #### 按照多个时间区间选择不同设备的多列数据
-
+```sql
 select wf01.wt01.status, wf02.wt02.hardware from root.ln where (time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000) or (time >= 
2017-11-01T16:35:00.000 and time <= 2017-11-01T16:37:00.000);
-
+```
 #### 根据时间降序返回结果集
-
+```sql
 select * from root.ln.** where time > 1 order by time desc limit 10;
-
+```
 ### 2、选择表达式
 
 #### 使用别名
-
+```sql
 select s1 as temperature, s2 as speed from root.ln.wf01.wt01;
-
+```
 #### 运算符
 
 #### 函数
 
 不支持:
-
+```sql
 select s1, count(s1) from root.sg.d1;
 
 select sin(s1), count(s1) from root.sg.d1;
 
 select s1, count(s1) from root.sg.d1 group by ([10,100),10ms);
-
+```
 ##### 时间序列查询嵌套表达式
 
 示例 1:
-
+```sql
 select a,
 
 ​       b,
@@ -501,9 +528,9 @@ select a,
 ​       -(a + b) * (sin(a + b) * sin(a + b) + cos(a + b) * cos(a + b)) + 1
 
 from root.sg1;
-
+```
 示例 2:
-
+```sql
 select (a + b) * 2 + sin(a) from root.sg
 
 示例 3:
@@ -513,11 +540,11 @@ select (a + *) / 2  from root.sg1
 示例 4:
 
 select (a + b) * 3 from root.sg, root.ln
-
+```
 ##### 聚合查询嵌套表达式
 
 示例 1:
-
+```sql
 select avg(temperature),
 
 ​       sin(avg(temperature)),
@@ -529,17 +556,17 @@ select avg(temperature),
 ​       avg(temperature) + sum(hardware)
 
 from root.ln.wf01.wt01;
-
+```
 示例 2:
-
+```sql
 select avg(*), 
 
 ​           (avg(*) + 1) * 3 / 2 -1 
 
 from root.sg1
-
+```
 示例 3:
-
+```sql
 select avg(temperature),
 
 ​       sin(avg(temperature)),
@@ -553,7 +580,7 @@ select avg(temperature),
 from root.ln.wf01.wt01
 
 GROUP BY([10, 90), 10ms);
-
+```
 #### 最新点查询
 
 SQL 语法:
@@ -563,211 +590,212 @@ select last <Path> [COMMA <Path>]* from < PrefixPath > 
[COMMA < PrefixPath >]* <
 ```
 
 查询 root.ln.wf01.wt01.status 的最新数据点
-
+```sql
 IoTDB> select last status from root.ln.wf01.wt01
-
+```
 查询 root.ln.wf01.wt01 下 status,temperature 时间戳大于等于 2017-11-07T23:50:00 的最新数据点
-
+```sql
 IoTDB> select last status, temperature from root.ln.wf01.wt01 where time >= 
2017-11-07T23:50:00
-
+```
  查询 root.ln.wf01.wt01 下所有序列的最新数据点,并按照序列名降序排列
-
+```sql
 IoTDB> select last * from root.ln.wf01.wt01 order by timeseries desc;
-
+```
 ### 3、查询过滤条件
 
 #### 时间过滤条件
 
 选择时间戳大于 2022-01-01T00:05:00.000 的数据:
-
+```sql
 select s1 from root.sg1.d1 where time > 2022-01-01T00:05:00.000;
-
+```
 选择时间戳等于 2022-01-01T00:05:00.000 的数据:
-
+```sql
 select s1 from root.sg1.d1 where time = 2022-01-01T00:05:00.000;
-
+```
 选择时间区间 [2017-11-01T00:05:00.000, 2017-11-01T00:12:00.000) 内的数据:
-
+```sql
 select s1 from root.sg1.d1 where time >= 2022-01-01T00:05:00.000 and time < 
2017-11-01T00:12:00.000;
-
+```
 #### 值过滤条件
 
 选择值大于 36.5 的数据:
-
+```sql
 select temperature from root.sg1.d1 where temperature > 36.5;
-
+```
 选择值等于 true 的数据:
-
+```sql
 select status from root.sg1.d1 where status = true;
-
+```
 选择区间 [36.5,40] 内或之外的数据:
-
+```sql
 select temperature from root.sg1.d1 where temperature between 36.5 and 40;
-
+```
+```sql
 select temperature from root.sg1.d1 where temperature not between 36.5 and 40;
-
+```
 选择值在特定范围内的数据:
-
+```sql
 select code from root.sg1.d1 where code in ('200', '300', '400', '500');
-
+```
 选择值在特定范围外的数据:
-
+```sql
 select code from root.sg1.d1 where code not in ('200', '300', '400', '500');
-
+```
 选择值为空的数据:
-
+```sql
 select code from root.sg1.d1 where temperature is null;
-
+```
 选择值为非空的数据:
-
+```sql
 select code from root.sg1.d1 where temperature is not null;
-
+```
 #### 模糊查询
 
 查询 `root.sg.d1` 下 `value` 含有`'cc'`的数据
-
+```sql
 IoTDB> select * from root.sg.d1 where value like '%cc%'
-
+```
 查询 `root.sg.d1` 下 `value` 中间为 `'b'`、前后为任意单个字符的数据
-
+```sql
 IoTDB> select * from root.sg.device where value like '_b_'
-
-查询 root.sg.d1 下 value 值为26个英文字符组成的字符串
 ```
+查询 root.sg.d1 下 value 值为26个英文字符组成的字符串
+```sql
 IoTDB> select * from root.sg.d1 where value regexp '^[A-Za-z]+$'
 ```
 
 查询 root.sg.d1 下 value 值为26个小写英文字符组成的字符串且时间大于100的
-```
+```sql
 IoTDB> select * from root.sg.d1 where value regexp '^[a-z]+$' and time > 100
 ```
 
 ### 4、分段分组聚合
 
 #### 未指定滑动步长的时间区间分组聚合查询
-
+```sql
 select count(status), max_value(temperature) from root.ln.wf01.wt01 group by 
([2017-11-01T00:00:00, 2017-11-07T23:00:00),1d);
-
+```
 #### 指定滑动步长的时间区间分组聚合查询
-
+```sql
 select count(status), max_value(temperature) from root.ln.wf01.wt01 group by 
([2017-11-01 00:00:00, 2017-11-07 23:00:00), 3h, 1d);
-
+```
 滑动步长可以小于聚合窗口
-
+```sql
 select count(status), max_value(temperature) from root.ln.wf01.wt01 group by 
([2017-11-01 00:00:00, 2017-11-01 10:00:00), 4h, 2h);
-
+```
 #### 按照自然月份的时间区间分组聚合查询
-
+```sql
 select count(status) from root.ln.wf01.wt01 where time > 2017-11-01T01:00:00 
group by([2017-11-01T00:00:00, 2019-11-07T23:00:00), 1mo, 2mo);
-
+```
 每个时间间隔窗口内都有数据
-
+```sql
 select count(status) from root.ln.wf01.wt01 group by([2017-10-31T00:00:00, 
2019-11-07T23:00:00), 1mo, 2mo);
-
+```
 #### 左开右闭区间
-
+```sql
 select count(status) from root.ln.wf01.wt01 group by ((2017-11-01T00:00:00, 
2017-11-07T23:00:00],1d);
-
+```
 #### 与分组聚合混合使用
 
 统计降采样后的数据点个数
-
+```sql
 select count(status) from root.ln.wf01.wt01 group by ((2017-11-01T00:00:00, 
2017-11-07T23:00:00],1d), level=1;
-
+```
 加上滑动 Step 的降采样后的结果也可以汇总
-
+```sql
 select count(status) from root.ln.wf01.wt01 group by ([2017-11-01 00:00:00, 
2017-11-07 23:00:00), 3h, 1d), level=1;
-
+```
 #### 路径层级分组聚合
 
 统计不同 database 下 status 序列的数据点个数
-
+```sql
 select count(status) from root.** group by level = 1
-
+```
  统计不同设备下 status 序列的数据点个数
-
+```sql
 select count(status) from root.** group by level = 3
-
+```
 统计不同 database 下的不同设备中 status 序列的数据点个数
-
+```sql
 select count(status) from root.** group by level = 1, 3
-
+```
 查询所有序列下温度传感器 temperature 的最大值
-
+```sql
 select max_value(temperature) from root.** group by level = 0
-
+```
 查询某一层级下所有传感器拥有的总数据点数
-
+```sql
 select count(*) from root.ln.** group by level = 2
-
+```
 #### 标签分组聚合
 
 ##### 单标签聚合查询
-
+```sql
 SELECT AVG(temperature) FROM root.factory1.** GROUP BY TAGS(city);
-
+```
 ##### 多标签聚合查询
-
+```sql
 SELECT avg(temperature) FROM root.factory1.** GROUP BY TAGS(city, workshop);
-
+```
 ##### 基于时间区间的标签聚合查询
-
+```sql
 SELECT AVG(temperature) FROM root.factory1.** GROUP BY ([1000, 10000), 5s), 
TAGS(city, workshop);
-
+```
 #### 差值分段聚合
-
+```sql
 group by variation(controlExpression[,delta][,ignoreNull=true/false])
-
+```
 ##### delta=0时的等值事件分段
-
+```sql
 select __endTime, avg(s1), count(s2), sum(s3) from root.sg.d group by 
variation(s6)
-
+```
 指定ignoreNull为false
-
+```sql
 select __endTime, avg(s1), count(s2), sum(s3) from root.sg.d group by 
variation(s6, ignoreNull=false)
-
+```
 ##### delta!=0时的差值事件分段
-
+```sql
 select __endTime, avg(s1), count(s2), sum(s3) from root.sg.d group by 
variation(s6, 4)
-
+```
 #### 条件分段聚合
-
+```sql
 group by condition(predict,[keep>/>=/=/<=/<]threshold,[,ignoreNull=true/false])
-
+```
 查询至少连续两行以上的charging_status=1的数据
-
+```sql
 select max_time(charging_status),count(vehicle_status),last_value(soc) from 
root.** group by condition(charging_status=1,KEEP>=2,ignoreNull=true)
-
+```
 当设置`ignoreNull`为false时,遇到null值为将其视为一个不满足条件的行,得到结果原先的分组被含null的行拆分
-
+```sql
 select max_time(charging_status),count(vehicle_status),last_value(soc) from 
root.** group by condition(charging_status=1,KEEP>=2,ignoreNull=false)
-
+```
 #### 会话分段聚合
-
+```sql
 group by session(timeInterval)
-
+```
 按照不同的时间单位设定时间间隔
-
+```sql
 select __endTime,count(*) from root.** group by session(1d)
-
+```
 和`HAVING`、`ALIGN BY DEVICE`共同使用
-
+```sql
 select __endTime,sum(hardware) from root.ln.wf02.wt01 group by session(50s) 
having sum(hardware)>0 align by device
-
+```
 #### 点数分段聚合
-
+```sql
 group by count(controlExpression, size[,ignoreNull=true/false])
-
+```
 select count(charging_stauts), first_value(soc) from root.sg group by 
count(charging_status,5) 
 
 当使用ignoreNull将null值也考虑进来
-
+```sql
 select count(charging_stauts), first_value(soc) from root.sg group by 
count(charging_status,5,ignoreNull=false) 
-
+```
 ### 5、聚合结果过滤
 
 不正确的:
-
+```sql
 select count(s1) from root.** group by ([1,3),1ms) having sum(s1) > s1
 
 select count(s1) from root.** group by ([1,3),1ms) having s1 > 1
@@ -775,103 +803,103 @@ select count(s1) from root.** group by ([1,3),1ms) 
having s1 > 1
 select count(s1) from root.** group by ([1,3),1ms), level=1 having sum(d1.s1) 
> 1
 
 select count(d1.s1) from root.** group by ([1,3),1ms), level=1 having sum(s1) 
> 1
-
+```
 SQL 示例:
-
+```sql
  select count(s1) from root.** group by ([1,11),2ms), level=1 having count(s2) 
> 2;
 
  select count(s1), count(s2) from root.** group by ([1,11),2ms) having 
count(s2) > 1 align by device;
-
+```
 ### 6、结果集补空值
-
+```sql
 FILL '(' PREVIOUS | LINEAR | constant ')'
-
+```
 #### `PREVIOUS` 填充
-
+```sql
 select temperature, status from root.sgcc.wf03.wt01 where time >= 
2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(previous);
-
+```
 #### `LINEAR` 填充
-
+```sql
 select temperature, status from root.sgcc.wf03.wt01 where time >= 
2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(linear);
-
+```
 #### 常量填充
-
+```sql
 select temperature, status from root.sgcc.wf03.wt01 where time >= 
2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(2.0);
-
+```
 使用 `BOOLEAN` 类型的常量填充
-
+```sql
 select temperature, status from root.sgcc.wf03.wt01 where time >= 
2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(true);
-
+```
 ### 7、查询结果分页
 
 #### 按行分页
 
  基本的 `LIMIT` 子句
-
+```sql
 select status, temperature from root.ln.wf01.wt01 limit 10
-
+```
 带 `OFFSET` 的 `LIMIT` 子句
-
+```sql
 select status, temperature from root.ln.wf01.wt01 limit 5 offset 3
-
+```
 `LIMIT` 子句与 `WHERE` 子句结合
-
+```sql
 select status,temperature from root.ln.wf01.wt01 where time > 
2017-11-01T00:05:00.000 and time< 2017-11-01T00:12:00.000 limit 5 offset 3
-
+```
  `LIMIT` 子句与 `GROUP BY` 子句组合
-
+```sql
 select count(status), max_value(temperature) from root.ln.wf01.wt01 group by 
([2017-11-01T00:00:00, 2017-11-07T23:00:00),1d) limit 4 offset 3
-
+```
 #### 按列分页
 
  基本的 `SLIMIT` 子句
-
+```sql
 select * from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time 
< 2017-11-01T00:12:00.000 slimit 1
-
+```
 带 `SOFFSET` 的 `SLIMIT` 子句
-
+```sql
 select * from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time 
< 2017-11-01T00:12:00.000 slimit 1 soffset 1
-
+```
 `SLIMIT` 子句与 `GROUP BY` 子句结合
-
+```sql
 select max_value(*) from root.ln.wf01.wt01 group by ([2017-11-01T00:00:00, 
2017-11-07T23:00:00),1d) slimit 1 soffset 1
-
+```
 `SLIMIT` 子句与 `LIMIT` 子句结合
-
+```sql
 select * from root.ln.wf01.wt01 limit 10 offset 100 slimit 2 soffset 0
-
+```
 ### 8、排序
 
 时间对齐模式下的排序
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 order by time desc;
-
+```
 设备对齐模式下的排序
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 order by device 
desc,time asc align by device;
-
+```
 在时间戳相等时按照设备名排序
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 order by time 
asc,device desc align by device;
-
+```
 没有显式指定时
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 align by device;
-
+```
 对聚合后的结果进行排序
-
+```sql
 select count(*) from root.ln.** group by 
((2017-11-01T00:00:00.000+08:00,2017-11-01T00:03:00.000+08:00],1m) order by 
device asc,time asc align by device
-
+```
 ### 9、查询对齐模式
 
 #### 按设备对齐
-
+```sql
 select * from root.ln.** where time <= 2017-11-01T00:01:00 align by device;
-
+```
 ### 10、查询写回(SELECT INTO)
 
 #### 整体描述
-
+```sql
 selectIntoStatement
 
 ​    : SELECT
@@ -901,23 +929,23 @@ intoItem
 ​    : [ALIGNED] intoDevicePath '(' intoMeasurementName [',' 
intoMeasurementName]* ')'
 
 ​    ;
-
+```
 按时间对齐,将 `root.sg` database 下四条序列的查询结果写入到 `root.sg_copy` database 下指定的四条序列中
-
+```sql
 IoTDB> select s1, s2 into root.sg_copy.d1(t1), root.sg_copy.d2(t1, t2), 
root.sg_copy.d1(t2) from root.sg.d1, root.sg.d2;
-
+```
 按时间对齐,将聚合查询的结果存储到指定序列中
-
+```sql
 IoTDB> select count(s1 + s2), last_value(s2) into root.agg.count(s1_add_s2), 
root.agg.last_value(s2) from root.sg.d1 group by ([0, 100), 10ms);
-
+```
 按设备对齐
-
+```sql
 IoTDB> select s1, s2 into root.sg_copy.d1(t1, t2), root.sg_copy.d2(t1, t2) 
from root.sg.d1, root.sg.d2 align by device;
-
+```
 按设备对齐,将表达式计算的结果存储到指定序列中
-
+```sql
 IoTDB> select s1 + s2 into root.expr.add(d1s1_d1s2), root.expr.add(d2s1_d2s2) 
from root.sg.d1, root.sg.d2 align by device;
-
+```
 #### 使用变量占位符
 
 ##### 按时间对齐(默认)
@@ -999,11 +1027,11 @@ select s1, s2 into root.sg_copy.d1(t1, t2), aligned 
root.sg_copy.d2(t1, t2) from
 
 ## 运算符
 
-更多见文档[Operator-and-Expression](../User-Manual/Operator-and-Expression.md)
+更多见文档[Operator-and-Expression](../Reference/Function-and-Expression.md#算数运算符和函数)
 
 ### 算数运算符
 
-更多见文档 [Arithmetic Operators and 
Functions](../Operators-Functions/Mathematical.md)
+更多见文档 [Arithmetic Operators and 
Functions](../Reference/Function-and-Expression.md#算数运算符和函数)
 
 ```sql
 select s1, - s1, s2, + s2, s1 + s2, s1 - s2, s1 * s2, s1 / s2, s1 % s2 from 
root.sg.d1
@@ -1011,7 +1039,7 @@ select s1, - s1, s2, + s2, s1 + s2, s1 - s2, s1 * s2, s1 
/ s2, s1 % s2 from root
 
 ### 比较运算符
 
-更多见文档[Comparison Operators and Functions](../Operators-Functions/Comparison.md)
+更多见文档[Comparison Operators and 
Functions](../Reference/Function-and-Expression.md#比较运算符和函数)
 
 ```sql
 # Basic comparison operators
@@ -1042,7 +1070,7 @@ select a, a in (1, 2) from root.test;
 
 ### 逻辑运算符
 
-更多见文档[Logical Operators](../Operators-Functions/Logical.md)
+更多见文档[Logical Operators](../Reference/Function-and-Expression.md#逻辑运算符)
 
 ```sql
 select a, b, a > 10, a <= b, !(a <= b), a > 10 && a > b from root.test;
@@ -1050,11 +1078,11 @@ select a, b, a > 10, a <= b, !(a <= b), a > 10 && a > b 
from root.test;
 
 ## 内置函数
 
-更多见文档[Operator-and-Expression](../User-Manual/Operator-and-Expression.md)
+更多见文档[Operator-and-Expression](../Reference/Function-and-Expression.md#聚合函数)
 
 ### Aggregate Functions
 
-更多见文档[Aggregate Functions](../Operators-Functions/Aggregation.md)
+更多见文档[Aggregate Functions](../Reference/Function-and-Expression.md#聚合函数)
 
 ```sql
 select count(status) from root.ln.wf01.wt01;
@@ -1067,7 +1095,7 @@ select time_duration(s1) from root.db.d1;
 
 ### 算数函数
 
-更多见文档[Arithmetic Operators and 
Functions](../Operators-Functions/Mathematical.md)
+更多见文档[Arithmetic Operators and 
Functions](../Reference/Function-and-Expression.md#数学函数)
 
 ```sql
 select s1, sin(s1), cos(s1), tan(s1) from root.sg1.d1 limit 5 offset 1000;
@@ -1076,7 +1104,7 @@ select s4,round(s4),round(s4,2),round(s4,-1) from 
root.sg1.d1;
 
 ### 比较函数
 
-更多见文档[Comparison Operators and Functions](../Operators-Functions/Comparison.md)
+更多见文档[Comparison Operators and 
Functions](../Reference/Function-and-Expression.md#比较运算符和函数)
 
 ```sql
 select ts, on_off(ts, 'threshold'='2') from root.test;
@@ -1085,7 +1113,7 @@ select ts, in_range(ts, 'lower'='2', 'upper'='3.1') from 
root.test;
 
 ### 字符串处理函数
 
-更多见文档[String Processing](../Operators-Functions/String.md)
+更多见文档[String Processing](../Reference/Function-and-Expression.md#字符串处理)
 
 ```sql
 select s1, string_contains(s1, 's'='warn') from root.sg1.d4;
@@ -1113,7 +1141,7 @@ select regexsplit(s1, "regex"=",", "index"="3") from 
root.test.d1
 
 ### 数据类型转换函数
 
-更多见文档[Data Type Conversion Function](../Operators-Functions/Conversion.md)
+更多见文档[Data Type Conversion 
Function](../Reference/Function-and-Expression.md#数据类型转换)
 
 ```sql
 SELECT cast(s1 as INT32) from root.sg
@@ -1121,7 +1149,7 @@ SELECT cast(s1 as INT32) from root.sg
 
 ### 常序列生成函数
 
-更多见文档[Constant Timeseries Generating 
Functions](../Operators-Functions/Constant.md)
+更多见文档[Constant Timeseries Generating 
Functions](../Reference/Function-and-Expression.md#常序列生成函数)
 
 ```sql
 select s1, s2, const(s1, 'value'='1024', 'type'='INT64'), pi(s2), e(s1, s2) 
from root.sg1.d1; 
@@ -1129,7 +1157,7 @@ select s1, s2, const(s1, 'value'='1024', 'type'='INT64'), 
pi(s2), e(s1, s2) from
 
 ### 选择函数
 
-更多见文档[Selector Functions](../Operators-Functions/Selection.md)
+更多见文档[Selector Functions](../Reference/Function-and-Expression.md#选择函数)
 
 ```sql
 select s1, top_k(s1, 'k'='2'), bottom_k(s1, 'k'='2') from root.sg1.d2 where 
time > 2020-12-10T20:36:15.530+08:00;
@@ -1137,7 +1165,7 @@ select s1, top_k(s1, 'k'='2'), bottom_k(s1, 'k'='2') from 
root.sg1.d2 where time
 
 ### 区间查询函数
 
-更多见文档[Continuous Interval 
Functions](../Operators-Functions/Continuous-Interval.md)
+更多见文档[Continuous Interval 
Functions](../Reference/Function-and-Expression.md#区间查询函数)
 
 ```sql
 select s1, zero_count(s1), non_zero_count(s2), zero_duration(s3), 
non_zero_duration(s4) from root.sg.d2;
@@ -1145,7 +1173,7 @@ select s1, zero_count(s1), non_zero_count(s2), 
zero_duration(s3), non_zero_durat
 
 ### 趋势计算函数
 
-更多见文档[Variation Trend Calculation 
Functions](../Operators-Functions/Variation-Trend.md)
+更多见文档[Variation Trend Calculation 
Functions](../Reference/Function-and-Expression.md#趋势计算函数)
 
 ```sql
 select s1, time_difference(s1), difference(s1), non_negative_difference(s1), 
derivative(s1), non_negative_derivative(s1) from root.sg1.d1 limit 5 offset 
1000; 
@@ -1156,7 +1184,11 @@ SELECT DIFF(s1, 'ignoreNull'='false'), DIFF(s2, 
'ignoreNull'='false') from root.
 
 ### 采样函数
 
-更多见文档[Sample Functions](../Operators-Functions/Sample.md)
+更多见文档[Sample Functions](../Reference/Function-and-Expression.md#采样函数)。
+### 时间序列处理函数
+
+| 函数名        | 输入序列类型                   | 参数 | 输出序列类型             | 功能描述       
            |
+| ---)
 
 ```sql
 select equal_size_bucket_random_sample(temperature,'proportion'='0.1') as 
random_sample from root.ln.wf01.wt01;
@@ -1170,7 +1202,7 @@ select M4(s1,'windowSize'='10') from root.vehicle.d1
 
 ### 时间序列处理函数
 
-更多见文档[Time-Series](../Operators-Functions/Time-Series.md)
+更多见文档[Time-Series](../Reference/Function-and-Expression.md#时间序列处理)
 
 ```sql
 select change_points(s1), change_points(s2), change_points(s3), 
change_points(s4), change_points(s5), change_points(s6) from 
root.testChangePoints.d1
@@ -1178,11 +1210,11 @@ select change_points(s1), change_points(s2), 
change_points(s3), change_points(s4
 
 ## 数据质量函数库
 
-更多见文档[Operator-and-Expression](../User-Manual/Operator-and-Expression.md)
+更多见文档[Operator-and-Expression](../Reference/UDF-Libraries.md)
 
 ### 数据质量
 
-更多见文档[Data-Quality](../Operators-Functions/Data-Quality.md)
+更多见文档[Data-Quality](../Reference/UDF-Libraries.md#数据质量)
 
 ```sql
 # Completeness
@@ -1207,7 +1239,7 @@ select Accuracy(t1,t2,t3,m1,m2,m3) from root.test
 
 ### 数据画像
 
-更多见文档[Data-Profiling](../Operators-Functions/Data-Profiling.md)
+更多见文档[Data-Profiling](../Reference/UDF-Libraries.md#数据画像)
 
 ```sql
 # ACF
@@ -1287,7 +1319,7 @@ select zscore(s1) from root.test
 
 ### 异常检测
 
-更多见文档[Anomaly-Detection](../Operators-Functions/Anomaly-Detection.md)
+更多见文档[Anomaly-Detection](../Reference/UDF-Libraries.md#异常检测)
 
 ```sql
 # IQR
@@ -1322,7 +1354,7 @@ select 
MasterDetect(lo,la,m_lo,m_la,model,'output_type'='anomaly','p'='3','k'='3
 
 ### 频域分析
 
-更多见文档[Frequency-Domain](../Operators-Functions/Frequency-Domain.md)
+更多见文档[Frequency-Domain](../Reference/UDF-Libraries.md#频域分析)
 
 ```sql
 # Conv
@@ -1351,7 +1383,7 @@ select lowpass(s1,'wpass'='0.45') from root.test.d1
 
 ### 数据匹配
 
-更多见文档[Data-Matching](../Operators-Functions/Data-Matching.md)
+更多见文档[Data-Matching](../Reference/UDF-Libraries.md#数据匹配)
 
 ```sql
 # Cov
@@ -1372,7 +1404,7 @@ select xcorr(s1, s2) from root.test.d1 where time <= 
2020-01-01 00:00:05
 
 ### 数据修复
 
-更多见文档[Data-Repairing](../Operators-Functions/Data-Repairing.md)
+更多见文档[Data-Repairing](../Reference/UDF-Libraries.md#数据修复)
 
 ```sql
 # TimestampRepair
@@ -1397,7 +1429,7 @@ select seasonalrepair(s1,'method'='improved','period'=3) 
from root.test.d2
 
 ### 序列发现
 
-更多见文档[Series-Discovery](../Operators-Functions/Series-Discovery.md)
+更多见文档[Series-Discovery](../Reference/UDF-Libraries.md#序列发现)
 
 ```sql
 # ConsecutiveSequences
@@ -1410,7 +1442,7 @@ select consecutivewindows(s1,s2,'length'='10m') from 
root.test.d1
 
 ### 机器学习
 
-更多见文档[Machine-Learning](../Operators-Functions/Machine-Learning.md)
+更多见文档[Machine-Learning](../Reference/UDF-Libraries.md#机器学习)
 
 ```sql
 # AR
@@ -1425,7 +1457,7 @@ select rm(s0, s1,"tb"="3","vb"="2") from root.test.d0
 
 ## Lambda 表达式
 
-更多见文档[Lambda](../Operators-Functions/Lambda.md)
+更多见文档[Lambda](../Reference/Function-and-Expression.md#Lambda表达式)
 
 ```sql
 select jexl(temperature, 'expr'='x -> {x + x}') as jexl1, jexl(temperature, 
'expr'='x -> {x * 3}') as jexl2, jexl(temperature, 'expr'='x -> {x * x}') as 
jexl3, jexl(temperature, 'expr'='x -> {multiply(x, 100)}') as jexl4, 
jexl(temperature, st, 'expr'='(x, y) -> {x + y}') as jexl5, jexl(temperature, 
st, str, 'expr'='(x, y, z) -> {x + y + z}') as jexl6 from root.ln.wf01.wt01;```
@@ -1433,7 +1465,7 @@ select jexl(temperature, 'expr'='x -> {x + x}') as jexl1, 
jexl(temperature, 'exp
 
 ## 条件表达式
 
-更多见文档[Conditional Expressions](../Operators-Functions/Conditional.md)
+更多见文档[Conditional Expressions](../Reference/Function-and-Expression.md#条件表达式)
 
 ```sql
 select T, P, case
@@ -1472,7 +1504,7 @@ from root.test4
 ## 触发器
 
 ### 使用 SQL 语句注册该触发器
-
+```sql
 // Create Trigger
 
 createTrigger
@@ -1528,9 +1560,9 @@ triggerAttribute
 ​    : key=attributeKey operator_eq value=attributeValue
 
 ​    ;
-
+```
 #### SQL 语句示例
-
+```sql
 CREATE STATELESS TRIGGER triggerTest
 
 BEFORE INSERT
@@ -1548,11 +1580,11 @@ WITH (
 ​    "limit" = "100"
 
 )
-
+```
 ### 卸载触发器
 
 #### 卸载触发器的 SQL 语法如下:
-
+```sql
 // Drop Trigger
 
 dropTrigger
@@ -1560,15 +1592,15 @@ dropTrigger
   : DROP TRIGGER triggerName=identifier
 
 ;
-
+```
 #### 示例语句
-
+```sql
 DROP TRIGGER triggerTest1
-
+```
 ### 查询触发器
-
+```sql
 SHOW TRIGGERS
-
+```
 ## 连续查询(Continuous Query, CQ)
 
 ### 语法
@@ -1595,7 +1627,7 @@ END
 ```
 
 #### 配置连续查询执行的周期性间隔
-
+```sql
 CREATE CONTINUOUS QUERY cq1
 
 RESAMPLE EVERY 20s
@@ -1615,9 +1647,9 @@ END
 
 
 \> SELECT temperature_max from root.ln.*.*;
-
+```
 #### 配置连续查询的时间窗口大小
-
+```
 CREATE CONTINUOUS QUERY cq2
 
 RESAMPLE RANGE 40s
@@ -1635,11 +1667,10 @@ BEGIN
 END
 
 
-
 \> SELECT temperature_max from root.ln.*.*;
-
+```
 #### 同时配置连续查询执行的周期性间隔和时间窗口大小
-
+```sql
 CREATE CONTINUOUS QUERY cq3
 
 RESAMPLE EVERY 20s RANGE 40s
@@ -1661,9 +1692,9 @@ END
 
 
 \> SELECT temperature_max from root.ln.*.*;
-
+```
 #### 配置连续查询每次查询执行时间窗口的结束时间
-
+```sql
 CREATE CONTINUOUS QUERY cq4
 
 RESAMPLE EVERY 20s RANGE 40s, 20s
@@ -1685,9 +1716,9 @@ END
 
 
 \> SELECT temperature_max from root.ln.*.*;
-
+```
 #### 没有GROUP BY TIME子句的连续查询
-
+```sql
 CREATE CONTINUOUS QUERY cq5
 
 RESAMPLE EVERY 20s
@@ -1707,31 +1738,32 @@ END
 
 
 \> SELECT temperature from root.precalculated_sg.*.* align by device;
-
+```
 ### 连续查询的管理
 
 #### 查询系统已有的连续查询
 
 展示集群中所有的已注册的连续查询
-
+```sql
 SHOW (CONTINUOUS QUERIES | CQS) 
-
+```
+```sql
 SHOW CONTINUOUS QUERIES;
-
+```
 #### 删除已有的连续查询
 
 删除指定的名为cq_id的连续查询:
 
-```Go
+```sql
 DROP (CONTINUOUS QUERY | CQ) <cq_id>
 ```
-
+```sql
 DROP CONTINUOUS QUERY s1_count_cq;
-
+```
 #### 作为子查询的替代品
 
-\1. 创建一个连续查询
-
+1. 创建一个连续查询
+```sql
 CREATE CQ s1_count_cq 
 
 BEGIN 
@@ -1745,49 +1777,50 @@ BEGIN
 ​        GROUP BY(30m)
 
 END
-
+```
 1. 查询连续查询的结果
-
+```sql
 SELECT avg(count_s1) from root.sg_count.d;
-
+```
 ## 用户自定义函数
 
 ### UDFParameters
-
+```sql
 SELECT UDF(s1, s2, 'key1'='iotdb', 'key2'='123.45') FROM root.sg.d;
-
+```
 ### UDF 注册
 
-```Go
+```sql
 CREATE FUNCTION <UDF-NAME> AS <UDF-CLASS-FULL-PATHNAME> (USING URI URI-STRING)?
 ```
 
 #### 不指定URI
-
+```sql
 CREATE FUNCTION example AS 'org.apache.iotdb.udf.UDTFExample'
-
+```
 #### 指定URI
-
+```sql
 CREATE FUNCTION example AS 'org.apache.iotdb.udf.UDTFExample' USING URI 
'http://jar/example.jar'
-
+```
 ### UDF 卸载
 
-```Go
+```sql
 DROP FUNCTION <UDF-NAME>
 ```
-
+```sql
 DROP FUNCTION example
-
+```
 ### UDF 查询
 
 #### 带自定义输入参数的查询
-
+```sql
 SELECT example(s1, 'key1'='value1', 'key2'='value2'), example(*, 
'key3'='value3') FROM root.sg.d1;
-
+```
+```sql
 SELECT example(s1, s2, 'key1'='value1', 'key2'='value2') FROM root.sg.d1;
-
+```
 #### 与其他查询的嵌套查询
-
+```sql
 SELECT s1, s2, example(s1, s2) FROM root.sg.d1;
 
 SELECT *, example(*) FROM root.sg.d1 DISABLE ALIGN;
@@ -1795,11 +1828,11 @@ SELECT *, example(*) FROM root.sg.d1 DISABLE ALIGN;
 SELECT s1 * example(* / s1 + s2) FROM root.sg.d1;
 
 SELECT s1, s2, s1 + example(s1, s2), s1 - example(s1 + example(s1, s2) / s2) 
FROM root.sg.d1;
-
+```
 ### 查看所有注册的 UDF
-
+```sql
 SHOW FUNCTIONS
-
+```
 ## 权限管理
 
 ### 用户与角色相关
diff --git a/src/zh/UserGuide/latest/User-Manual/IoTDB-View_timecho.md 
b/src/zh/UserGuide/latest/User-Manual/IoTDB-View_timecho.md
index 8ee4a0d..54eef71 100644
--- a/src/zh/UserGuide/latest/User-Manual/IoTDB-View_timecho.md
+++ b/src/zh/UserGuide/latest/User-Manual/IoTDB-View_timecho.md
@@ -308,7 +308,7 @@ AS
     SELECT temperature FROM root.db.*
 ```
 
-这里仿照了查询写回(`SELECT INTO`)对命名规则的约定,使用变量占位符来指定命名规则。可以参考:[查询写回(SELECT 
INTO)](https://iotdb.apache.org/zh/UserGuide/Master/Query-Data/Select-Into.html)
+这里仿照了查询写回(`SELECT INTO`)对命名规则的约定,使用变量占位符来指定命名规则。可以参考:[查询写回(SELECT 
INTO)](../User-Manual/Query-Data.md#查询写回(INTO-子句))
 
 这里`root.db.*.temperature`指定了有哪些时间序列会被包含在视图中;`${2}`则指定了从时间序列中的哪个节点提取出名字来命名序列视图。
 
diff --git a/src/zh/UserGuide/latest/User-Manual/Operate-Metadata.md 
b/src/zh/UserGuide/latest/User-Manual/Operate-Metadata.md
index f21109b..6444f46 100644
--- a/src/zh/UserGuide/latest/User-Manual/Operate-Metadata.md
+++ b/src/zh/UserGuide/latest/User-Manual/Operate-Metadata.md
@@ -46,7 +46,7 @@ Database 节点名只支持中英文字符、数字、下划线的组合,如
 
 ### 查看数据库
 
-在 database 创建后,我们可以使用 [SHOW DATABASES](../Reference/SQL-Reference.md) 语句和 
[SHOW DATABASES \<PathPattern>](../Reference/SQL-Reference.md) 来查看 database,SQL 
语句如下所示:
+在 database 创建后,我们可以使用 [SHOW DATABASES](../SQL-Manual/SQL-Manual.md#查看数据库) 语句和 
[SHOW DATABASES \<PathPattern>](../SQL-Manual/SQL-Manual.md#查看数据库) 来查看 
database,SQL 语句如下所示:
 
 ```
 IoTDB> show databases
@@ -552,7 +552,7 @@ IoTDB> create timeseries root.ln.wf02.wt02.status WITH 
DATATYPE=BOOLEAN, ENCODIN
 error: encoding TS_2DIFF does not support BOOLEAN
 ```
 
-详细的数据类型与编码方式的对应列表请参见 [编码方式](../Basic-Concept/Encoding.md)。
+详细的数据类型与编码方式的对应列表请参见 [编码方式](../Basic-Concept/Encoding-and-Compression.md)。
 
 ### 创建对齐时间序列
 
diff --git a/src/zh/UserGuide/latest/User-Manual/Operator-and-Expression.md 
b/src/zh/UserGuide/latest/User-Manual/Operator-and-Expression.md
index dd9866e..3ff9f86 100644
--- a/src/zh/UserGuide/latest/User-Manual/Operator-and-Expression.md
+++ b/src/zh/UserGuide/latest/User-Manual/Operator-and-Expression.md
@@ -226,6 +226,7 @@ OR, |, ||
 | EQUAL_SIZE_BUCKET_OUTLIER_SAMPLE   | INT32 / INT64 / FLOAT / DOUBLE | 
`proportion`取值范围为`(0, 
1]`,默认为`0.1`<br>`type`取值为`avg`或`stendis`或`cos`或`prenextdis`,默认为`avg`<br>`number`取值应大于0,默认`3`|
 INT32 / INT64 / FLOAT / DOUBLE | 返回符合采样比例和桶内采样个数的等分桶离群值采样                |
 | M4     | INT32 / INT64 / FLOAT / DOUBLE | 
包含固定点数的窗口和滑动时间窗口使用不同的属性参数。包含固定点数的窗口使用属性`windowSize`和`slidingStep`。滑动时间窗口使用属性`timeInterval`、`slidingStep`、`displayWindowBegin`和`displayWindowEnd`。更多细节见下文。
 | INT32 / INT64 / FLOAT / DOUBLE | 
返回每个窗口内的第一个点(`first`)、最后一个点(`last`)、最小值点(`bottom`)、最大值点(`top`)。在一个窗口内的聚合点输出之前,M4会将它们按照时间戳递增排序并且去重。
 |
 
+详细说明及示例见文档 [采样函数](../Reference/Function-and-Expression.md#采样函数)。
 ### 时间序列处理函数
 
 | 函数名        | 输入序列类型                   | 参数 | 输出序列类型             | 功能描述       
            |
@@ -266,7 +267,7 @@ OR, |, ||
 | ------ | ----------------------------------------------- | 
------------------------------------------------------------ | 
----------------------------------------------- | 
---------------------------------------------- |
 | JEXL   | INT32 / INT64 / FLOAT / DOUBLE / TEXT / BOOLEAN | 
`expr`是一个支持标准的一元或多元参数的lambda表达式,符合`x -> {...}`或`(x, y, z) -> {...}`的格式,例如`x -> 
{x * 2}`, `(x, y, z) -> {x + y * z}` | INT32 / INT64 / FLOAT / DOUBLE / TEXT / 
BOOLEAN | 返回将输入的时间序列通过lambda表达式变换的序列 |
 
-详细说明及示例见文档 [Lambda 表达式](../Operators-Functions/Lambda.md)
+详细说明及示例见文档 [Lambda 表达式](../Reference/Function-and-Expression.md#Lambda表达式)
 
 ## 条件表达式
 
@@ -274,7 +275,7 @@ OR, |, ||
 |---------------------------|-----------|
 | `CASE` | 类似if else |
 
-详细说明及示例见文档 [条件表达式](../Operators-Functions/Conditional.md)
+详细说明及示例见文档 [条件表达式](../Reference/Function-and-Expression.md#条件表达式)
 
 ## SELECT 表达式
 
@@ -312,7 +313,7 @@ select s1 as temperature, s2 as speed from 
root.ln.wf01.wt01;
 
 #### 运算符
 
-IoTDB 中支持的运算符列表见文档 [运算符和函数](../Operators-Functions/Overview.md)。
+IoTDB 中支持的运算符列表见文档 [运算符和函数](../Reference/Function-and-Expression.md#算数运算符和函数)。
 
 #### 函数
 
@@ -330,7 +331,7 @@ select sin(s1), count(s1) from root.sg.d1;
 select s1, count(s1) from root.sg.d1 group by ([10,100),10ms);
 ```
 
-IoTDB 支持的聚合函数见文档 [聚合函数](../Operators-Functions/Aggregation.md)。
+IoTDB 支持的聚合函数见文档 [聚合函数](../Reference/Function-and-Expression.md#聚合函数)。
 
 ##### 时间序列生成函数
 
@@ -340,11 +341,11 @@ IoTDB 支持的聚合函数见文档 [聚合函数](../Operators-Functions/Aggre
 
 ###### 内置时间序列生成函数
 
-IoTDB 中支持的内置函数列表见文档 [运算符和函数](../Operators-Functions/Overview.md)。
+IoTDB 中支持的内置函数列表见文档 [运算符和函数](../Reference/Function-and-Expression.md#算数运算符)。
 
 ###### 自定义时间序列生成函数
 
-IoTDB 支持通过用户自定义函数(点击查看: 
[用户自定义函数](../Operators-Functions/User-Defined-Function.md) )能力进行函数功能扩展。
+IoTDB 支持通过用户自定义函数(点击查看: [用户自定义函数](../Reference/UDF-Libraries.md) )能力进行函数功能扩展。
 
 #### 嵌套表达式举例
 

Reply via email to