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

luzhijing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 49a1660dd5b7 [doc] function truncate update (#516)
49a1660dd5b7 is described below

commit 49a1660dd5b7134597d47f967e9928847a6b3c70
Author: zhiqiang <seuhezhiqi...@163.com>
AuthorDate: Mon Apr 8 12:27:59 2024 +0800

    [doc] function truncate update (#516)
---
 .../sql-functions/numeric-functions/truncate.md    | 27 +++++++++++++++++-----
 .../sql-functions/numeric-functions/truncate.md    | 27 +++++++++++++++++-----
 .../sql-functions/numeric-functions/truncate.md    | 27 +++++++++++++++++-----
 .../sql-functions/numeric-functions/truncate.md    | 27 +++++++++++++++++-----
 4 files changed, 84 insertions(+), 24 deletions(-)

diff --git a/docs/sql-manual/sql-functions/numeric-functions/truncate.md 
b/docs/sql-manual/sql-functions/numeric-functions/truncate.md
index ca0e3ccc4a46..79e8de2886ad 100644
--- a/docs/sql-manual/sql-functions/numeric-functions/truncate.md
+++ b/docs/sql-manual/sql-functions/numeric-functions/truncate.md
@@ -26,14 +26,18 @@ under the License.
 
 ### description
 #### Syntax
+`DOUBLE truncate(DOUBLE x, INT d)`  
 
-`DOUBLE truncate(DOUBLE x, INT d)`
-Numerically truncate `x` according to the number of decimal places `d`.
+Numerically truncate `x` according to the number of decimal places `d`.  
 
-The rules are as follows: 
-When `d > 0`: keep `d` decimal places of `x` 
-When `d = 0`: remove the fractional part of `x` and keep only the integer part 
-When `d < 0`: Remove the fractional part of `x`, and replace the integer part 
with the number `0` according to the number of digits specified by `d`
+The rules are as follows:  
+
+If `d` is literal:  
+When `d > 0`: keep `d` decimal places of `x`  
+When `d = 0`: remove the fractional part of `x` and keep only the integer part 
 
+When `d < 0`: Remove the fractional part of `x`, and replace the integer part 
with the number `0` according to the number of digits specified by `d`  
+
+Else if `d` is a column, and `x` has Decimal type, scale of result Decimal 
will always be same with input Decimal.
 
 ### example
 
@@ -56,6 +60,17 @@ mysql> select truncate(-124.3867, -2);
 +-------------------------+
 |                    -100 |
 +-------------------------+
+mysql> select cast("123.123456" as Decimal(9,6)), number, truncate(cast 
("123.123456" as Decimal(9,6)), number) from numbers("number"="5");
+--------------
++---------------------------------------+--------+----------------------------------------------------------------------+
+| cast('123.123456' as DECIMALV3(9, 6)) | number | truncate(cast('123.123456' 
as DECIMALV3(9, 6)), cast(number as INT)) |
++---------------------------------------+--------+----------------------------------------------------------------------+
+|                            123.123456 |      0 |                             
                              123.000000 |
+|                            123.123456 |      1 |                             
                              123.100000 |
+|                            123.123456 |      2 |                             
                              123.120000 |
+|                            123.123456 |      3 |                             
                              123.123000 |
+|                            123.123456 |      4 |                             
                              123.123400 |
++---------------------------------------+--------+----------------------------------------------------------------------+
 ```
 
 ### keywords
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/numeric-functions/truncate.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/numeric-functions/truncate.md
index e13d291772fb..41e656fc55c2 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/numeric-functions/truncate.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/numeric-functions/truncate.md
@@ -27,13 +27,17 @@ under the License.
 ### description
 #### Syntax
 
-`DOUBLE truncate(DOUBLE x, INT d)`
-按照保留小数的位数`d`对`x`进行数值截取。
+`DOUBLE truncate(DOUBLE x, INT d)`  
+按照保留小数的位数`d`对`x`进行数值截取。  
 
-规则如下:
-当`d > 0`时:保留`x`的`d`位小数
-当`d = 0`时:将`x`的小数部分去除,只保留整数部分
-当`d < 0`时:将`x`的小数部分去除,整数部分按照 `d`所指定的位数,采用数字`0`进行替换
+规则如下:  
+
+如果 `d` 为字面量:  
+当`d > 0`时:保留`x`的`d`位小数  
+当`d = 0`时:将`x`的小数部分去除,只保留整数部分  
+当`d < 0`时:将`x`的小数部分去除,整数部分按照 `d`所指定的位数,采用数字`0`进行替换  
+
+如果 `d` 为一个列,并且第一个参数为 Decimal 类型,那么结果 Decimal 会跟入参 Decimal 具有相同的小数部分长度。
 
 ### example
 
@@ -56,6 +60,17 @@ mysql> select truncate(-124.3867, -2);
 +-------------------------+
 |                    -100 |
 +-------------------------+
+mysql> select cast("123.123456" as Decimal(9,6)), number, truncate(cast 
("123.123456" as Decimal(9,6)), number) from numbers("number"="5");
+--------------
++---------------------------------------+--------+----------------------------------------------------------------------+
+| cast('123.123456' as DECIMALV3(9, 6)) | number | truncate(cast('123.123456' 
as DECIMALV3(9, 6)), cast(number as INT)) |
++---------------------------------------+--------+----------------------------------------------------------------------+
+|                            123.123456 |      0 |                             
                              123.000000 |
+|                            123.123456 |      1 |                             
                              123.100000 |
+|                            123.123456 |      2 |                             
                              123.120000 |
+|                            123.123456 |      3 |                             
                              123.123000 |
+|                            123.123456 |      4 |                             
                              123.123400 |
++---------------------------------------+--------+----------------------------------------------------------------------+
 ```
 
 ### keywords
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-functions/numeric-functions/truncate.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-functions/numeric-functions/truncate.md
index e13d291772fb..41e656fc55c2 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-functions/numeric-functions/truncate.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-functions/numeric-functions/truncate.md
@@ -27,13 +27,17 @@ under the License.
 ### description
 #### Syntax
 
-`DOUBLE truncate(DOUBLE x, INT d)`
-按照保留小数的位数`d`对`x`进行数值截取。
+`DOUBLE truncate(DOUBLE x, INT d)`  
+按照保留小数的位数`d`对`x`进行数值截取。  
 
-规则如下:
-当`d > 0`时:保留`x`的`d`位小数
-当`d = 0`时:将`x`的小数部分去除,只保留整数部分
-当`d < 0`时:将`x`的小数部分去除,整数部分按照 `d`所指定的位数,采用数字`0`进行替换
+规则如下:  
+
+如果 `d` 为字面量:  
+当`d > 0`时:保留`x`的`d`位小数  
+当`d = 0`时:将`x`的小数部分去除,只保留整数部分  
+当`d < 0`时:将`x`的小数部分去除,整数部分按照 `d`所指定的位数,采用数字`0`进行替换  
+
+如果 `d` 为一个列,并且第一个参数为 Decimal 类型,那么结果 Decimal 会跟入参 Decimal 具有相同的小数部分长度。
 
 ### example
 
@@ -56,6 +60,17 @@ mysql> select truncate(-124.3867, -2);
 +-------------------------+
 |                    -100 |
 +-------------------------+
+mysql> select cast("123.123456" as Decimal(9,6)), number, truncate(cast 
("123.123456" as Decimal(9,6)), number) from numbers("number"="5");
+--------------
++---------------------------------------+--------+----------------------------------------------------------------------+
+| cast('123.123456' as DECIMALV3(9, 6)) | number | truncate(cast('123.123456' 
as DECIMALV3(9, 6)), cast(number as INT)) |
++---------------------------------------+--------+----------------------------------------------------------------------+
+|                            123.123456 |      0 |                             
                              123.000000 |
+|                            123.123456 |      1 |                             
                              123.100000 |
+|                            123.123456 |      2 |                             
                              123.120000 |
+|                            123.123456 |      3 |                             
                              123.123000 |
+|                            123.123456 |      4 |                             
                              123.123400 |
++---------------------------------------+--------+----------------------------------------------------------------------+
 ```
 
 ### keywords
diff --git 
a/versioned_docs/version-2.1/sql-manual/sql-functions/numeric-functions/truncate.md
 
b/versioned_docs/version-2.1/sql-manual/sql-functions/numeric-functions/truncate.md
index ca0e3ccc4a46..79e8de2886ad 100644
--- 
a/versioned_docs/version-2.1/sql-manual/sql-functions/numeric-functions/truncate.md
+++ 
b/versioned_docs/version-2.1/sql-manual/sql-functions/numeric-functions/truncate.md
@@ -26,14 +26,18 @@ under the License.
 
 ### description
 #### Syntax
+`DOUBLE truncate(DOUBLE x, INT d)`  
 
-`DOUBLE truncate(DOUBLE x, INT d)`
-Numerically truncate `x` according to the number of decimal places `d`.
+Numerically truncate `x` according to the number of decimal places `d`.  
 
-The rules are as follows: 
-When `d > 0`: keep `d` decimal places of `x` 
-When `d = 0`: remove the fractional part of `x` and keep only the integer part 
-When `d < 0`: Remove the fractional part of `x`, and replace the integer part 
with the number `0` according to the number of digits specified by `d`
+The rules are as follows:  
+
+If `d` is literal:  
+When `d > 0`: keep `d` decimal places of `x`  
+When `d = 0`: remove the fractional part of `x` and keep only the integer part 
 
+When `d < 0`: Remove the fractional part of `x`, and replace the integer part 
with the number `0` according to the number of digits specified by `d`  
+
+Else if `d` is a column, and `x` has Decimal type, scale of result Decimal 
will always be same with input Decimal.
 
 ### example
 
@@ -56,6 +60,17 @@ mysql> select truncate(-124.3867, -2);
 +-------------------------+
 |                    -100 |
 +-------------------------+
+mysql> select cast("123.123456" as Decimal(9,6)), number, truncate(cast 
("123.123456" as Decimal(9,6)), number) from numbers("number"="5");
+--------------
++---------------------------------------+--------+----------------------------------------------------------------------+
+| cast('123.123456' as DECIMALV3(9, 6)) | number | truncate(cast('123.123456' 
as DECIMALV3(9, 6)), cast(number as INT)) |
++---------------------------------------+--------+----------------------------------------------------------------------+
+|                            123.123456 |      0 |                             
                              123.000000 |
+|                            123.123456 |      1 |                             
                              123.100000 |
+|                            123.123456 |      2 |                             
                              123.120000 |
+|                            123.123456 |      3 |                             
                              123.123000 |
+|                            123.123456 |      4 |                             
                              123.123400 |
++---------------------------------------+--------+----------------------------------------------------------------------+
 ```
 
 ### keywords


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to