KSQL 参考手册
1 KSQL 概述
KSQL对金蝶产品实现多数据库支持非常重要。所有与金蝶ERP产品支持的数据库通讯的应用程序都通过向数据库服务器发送KSQL语句来实现通讯,与应用程序的用户界面无关。
KSQL是SQL92的子集。它抽取了SQL92的部分语法来满足金蝶ERP产品的最大功能集合,并随着金蝶ERP产品的发展逐渐丰富和完善。
2 KSQL语法规则
规范 | 用于 |
大写 | KSQL 关键字或文法终结符(在具体语法子句中予以解释) |
小写 | KSQL的语法子句和文法非终结符(在具体语法子句中予以解释) |
斜体 | KSQL 语法中用户提供的参数。 |
| (竖线) | 分隔括号或大括号内的语法项目。只能选择一个项目。 |
[ ] (方括号) | 可选语法项目。不必键入方括号。 |
{}(大括号) | 必选语法项。不要键入大括号。 |
[ ,...n ] | 表示前面的项可重复 n 次。每一项由逗号分隔。 |
[ ...n ] | 表示前面的项可重复 n 次。每一项由空格分隔。 |
加粗 | 数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样键入的文本。 |
<标签> ::= | 语法块的名称。此规则用于对可在语句中的多个位置使用的过长语法或语法单元部分进行分组和标记。适合使用语法块的每个位置由括在尖括号内的标签表示:<标签>。 |
除非特别申明,否则所有对数据库对象名的KSQL引用可以是格式如下:
[database_name.] object_name
object_name 引用对象的名称。
当引用某个特定对象时,不必总是为KSQL指定标识该对象的数据库实体名称,也可以直接使用object_name引用某个特定对象,但它要依赖它自己所在的上下文环境。
3 KSQL数据类型
3.1 数据类型预览
数据类型 | 长度 | Sql server | Oracle | Db2 |
CHAR | [1,254] | CHAR[(n)] | CHAR[(n)] | CHAR[(n)] |
VARCHAR | [1,4000] | VARCHAR[(n)] | VARCHAR2(n) | VARCHAR(n) |
NCHAR | [1,2000] | NCHAR[(n)] | NCHAR[(n)] | ? |
NVARCHAR | [1,4000] | NVARCHAR[(n)] | NVARCHAR2(n) | |
BINARY | [1,2000] | BINARY[(n)] | RAW( n ) | VARCHAR(n) FOR BIT DATA |
VARBINARY | [1,8000] | VARBINARY[(n)] | LONG RAW | LONG VARCHAR FOR BIT DATA |
BLOB | [1,2G] | IMAGE | BLOB | BLOB(n) |
CLOB | [1,2G] | TEXT | CLOB | CLOB(n) |
NCLOB | [1,1G] | NTEXT | NCLOB | ? |
INT,INTEGER | [-2^31,2~31-1] | INT | NUMBER(38) | INT |
DECIMAL | [-10^31+1,10^31-1] | |||
DATETIME | DATETIME | DATE | DATE TIME TIMESTAMP |
3.2 数据类型分类
KSQL支持的数据类型为 CHAR, VARCHAR , NCHAR, NVARCHAR, BINARY, VARBINARY, BLOB, CLOB, NCLOB, INT, INTEGER, DECIMAL, DATE, TIME DATETIME
3.3 数据类型层次结构
字符和二进制字符串大对象
CHAR
VARCHAR
CLOB
UNICODE字符和字符串大对象
NCHAR
NVARCHAR
NCLOB
二制数据类型
BINARY
VARBINARY
二进制大对象
BLOB
精确数字
INT
INTEGER
近似数字
DECIMAL
时间数据类型
日期 DATE
时间 TIME
时间戳 DATETIME
3.4 数据类型的优先顺序
当两个不同数据类型的表达式用运算符组合后,数据类型的优先顺序规则确定哪种数据类型要向另一种转换。优先顺序低的数据类型向优先顺序高的数据类型转换。如果此转换不是目标数据库所支持的固有转换,则返回错误。当两个操作数表达式有相同的数据类型时,运算的结果就为那种数据类型。
下面是KSQL数据类型的优先顺序:
CHAR
VARCHAR
NCHAR
NVARCHAR
BINARY
VARBINARY
BLOB
CLOB
NCLOB
DECIMAL
INT
BINARY
VARBINARY
BLOB
CLOB
NCLOB
DECIMAL
INT INTEGER
DATETIME (最高)
3.5 数据类型解释
3.5.1 CHAR
定义固定长度字符数据类型。
语法
CHAR [ ( n ) ]
参数
n
整型值,指定字符数据长度。它可以是1到2000中的值。如没定义,默认值是1。
3.5.2 VARCHAR
定义可变长度字符数据类型
语法
CHAR [ ( n ) ]
参数
n
整型值,指定字符数据长度。它可以是1到2000中的值。如没定义,默认值是1。
3.5.3 NCHAR
固定长度的UNICODE数据的数据类型。
语法
NCHAR [ ( n ) ]
参数
n
整型值,指定字符数据长度。它可以是1到4000中的值。如没定义,默认值是1。
3.5.4 NVARCHAR
可变长度长度的UNICODE数据的数据类型。
语法
参数
NVARCHAR [ ( n ) ]
n
整型值,指定字符数据长度。它可以是1到4000中的值。如没定义,默认值是1。
3.5.5 BINARY
二进制数据类型
语法
BINARY [ ( n ) ]
参数
n
整型值。
3.5.6 BLOB
可变长度二进制数据数据类型。
语法
BLOB [ ( n ) ]
参数
n
整型值,它可以是0到2G之间的值。如没定义,默认值是1。
3.5.7 CLOB
可变长度非 Unicode 数据数据类型。
语法
CLOB [ ( n ) ]
参数
n
整型值,它可以是0到2G之间的值。如没定义,默认值是1。
3.5.8 NCLOB
可变长度 Unicode 数据数据类型。
语法
NCLOB [ ( n ) ]
参数
n
整型值,它可以是0到1G之间的值。如没定义,默认值是1。
3.5.9 INT 和INTEGER
使用整数数据的精确数字数据类型。
语法
{ INT | INTEGER }
参数
注释
INT和INTEGER可表示[-2^31,2~31-1]间的数值。
3.5.10 DECIMAL
带定点精度和小数位数的数值数据类型
语法
DECIMAL [ ( p [ , s ] ) ]
参数
p
精度,指定小数点左边和右边可以存储的十进制数字的最大个数。精度值可以是1到最大精度31之间的值。
S
小数位数,指定小数点右边可以存储的十进制数字的最大个数。小数位数可以是[0,p]中的值。
3.5.11 DATETIME
日期和时间数值数据类型。
语法
参数
4 运算符号
4.1 +(加)
两个数相加。KSQL不允许使用‘+’进行字符串和日期的运算。
语法
expression + expression
参数
expression
是数值类型中任何数据类型的任何有效KSQL表达式。
结果类型
返回优先级较高的参数的数据类型。
示例
SELECT 1 + ABS( 2.0 ) FROM sample
4.2 +(正)
一元运算符,返回数字表达式的正值(一元运算符)。
语法
(+ numeric_expression)
参数
numeric_expression
是数值类型中任何数据类型的任何有效KSQL表达式。
结果类型
返回numeric_expression的类型。
示例
SELECT ( + 1 ) FROM sample
4.3 -(减)
两个数相减。KSQL不允许使用‘-’进行字符串和日期的运算。
语法
expression – expression
参数
expression
是数值类型中任何数据类型的任何有效KSQL表达式。
结果类型
返回优先级较高的参数的数据类型
示例
SELECT ABS(2.0) – 1 FROM sample
4.4 -(负)
一元运算符,返回数字表达式的负值(一元运算符)。
语法
(-numeric_expression)
参数
numeric_expression
是数值类型中任何数据类型的任何有效KSQL表达式。
结果类型
返回numeric_expression的类型。
4.5 *(乘)
两个表达式相乘(算术乘法运算)。
语法
expression * expression
参数
expression
是数值类型中任何数据类型的任何有效KSQL表达式。
结果类型
返回优先级较高的参数的数据类型。
示例
SELECT price * 1.5 AS NewPrice FROM titles
4.6 /(除)
用一个数除以另一个数(算术除法运算符)。
语法
dividend / divisor
参数
dividend
是被除的数字表达式,dividend可以是数值类型中任何数据类型的有效表达式。
Divisor
除数的数字表达式。divisor可以是数值类型中任何数据类型的有效表达式。
结果类型
返回优先级较高的参数的数据类型。如果用一个整型的 divisor 去除整型的 dividend,其结果是一个整数,小数部分被截断。
注释
由 / 运算符返回的实际值是用第一个表达式除以第二个表达式所得的商。
式例
SELECT ((ytd_sales * price) * royalty)/100 AS ‘Royalty Amout’ FROM titles
WHERE type = ‘business’ ORDER BY title_id
4.7 =(等于)
比较两个表达式(比较运算符)。当比较非空表达式时,如果两个操作数相等,则结果为 TRUE;否则结果为FALSE. 如果两个操作数中有一个或者两个都为 NULL,比较结果由目标数据库的环境参数决定。转换取决于数据类型优先级。
语法
expression = expression
参数
expression
可以是数值类型中任何数据类型的有效表达式。两个表达式都必须有可隐式转换的数据类型。转换取决于数据类型优先级。
结果类型
Boolean
4.8 >(大于)
比较两个表达式(比较运算符)。当比较非空表达式时,如果左边操作数的值大于右边的操作数,则结果为 TRUE;否则结果为FALSE。如果两个操作数中有一个或者两个都为 NULL, 比较结果由目标数据库的环境参数设置决定。
语法
expression > expression
参数
expression
可以是数值类型中任何数据类型的有效表达式。两个表达式都必须有可隐式转换的数据类型。转换取决于数据类型优先级。
结果类型
Boolean
4.9 <(小于)
比较两个表达式(比较运算符)。当比较非空表达式时,如果左边操作数的值小于右边的操作数,则结果为 TRUE;否则结果为FALSE。如果两个操作数中有一个或者两个都为 NULL, 比较结果由目标数据库的环境参数设置决定。
语法
expression < expression
参数
expression
可以是数值类型中任何数据类型的有效表达式。两个表达式都必须有可隐式转换的数据类型。转换取决于数据类型优先级。
结果类型
Boolean
4.10 >=(大于或等于)
比较两个表达式(比较运算符)。当比较非空表达式时,如果左边操作数的值大于或等于右边的操作数,则结果为 TRUE;否则结果为FALSE。如果两个操作数中有一个或者两个都为 NULL, 比较结果由目标数据库的环境参数设置决定。
语法
expression > = expression
参数
expression
可以是数值类型中任何数据类型的有效表达式。两个表达式都必须有可隐式转换的数据类型。转换取决于数据类型优先级。
结果类型
Boolean
4.11 <=(小于或等于)
比较两个表达式(比较运算符)。当比较非空表达式时,如果左边操作数的值小于或等于右边的操作数,则结果为 TRUE;否则结果为FALSE。如果两个操作数中有一个或者两个都为 NULL, 比较结果由目标数据库的环境参数设置决定。
语法
expression = < expression
参数
expression
可以是数值类型中任何数据类型的有效表达式。两个表达式都必须有可隐式转换的数据类型。转换取决于数据类型优先级。
结果类型
Boolean
4.12 <>(不等于)
比较两个表达式(比较运算符)。当比较非空表达式时,如果左边操作数的值不等于右边的操作数,则结果为 TRUE;否则结果为FALSE。如果两个操作数中有一个或者两个都为 NULL, 比较结果由目标数据库的环境参数设置决定。
语法
expression < > expression
参数
expression
可以是数值类型中任何数据类型的有效表达式。两个表达式都必须有可隐式转换的数据类型。转换取决于数据类型优先级。
结果类型
Boolean
4.13 !=(不等于)
比较两个表达式(比较运算符)。当比较非空表达式时,如果左边操作数的值不等于右边的操作数,则结果为 TRUE;否则结果为FALSE。如果两个操作数中有一个或者两个都为 NULL, 比较结果由目标数据库的环境参数设置决定。
语法
expression != expression
参数
expression
可以是数值类型中任何数据类型的有效表达式。两个表达式都必须有可隐式转换的数据类型。转换取决于数据类型优先级。
结果类型
Boolean
5 注释
5.1 ――(单行注释)
表示用户提供的文本。可以将注释插入单独行中、嵌套(只限--和//)在 KSQL 命令行的末端,或者KSQL语句中。目标数据库不对注释进行评估。--是SQL92标准的注释符号。
语法
-- text_of_comment
参数
text_of_comment
包含注释文本的字符串
注释
将 -- 用于单行或嵌套的注释。用 -- 插入的注释由换行字符分界。注释没有最大长度限制。
示例
SELECT * FROM authors ORDER BY au_id ASC -- We don't have to specify ASC because that
--is the default.
5.2 //(单行注释)
表示用户提供的文本。可以将注释插入单独行中、嵌套(只限--和//)在 KSQL 命令行的末端,或者KSQL语句中。目标数据库不对注释进行评估。//是KSQL引用了其他高级语言的注释方法。
语法
// text_of_comment
参数
text_of_comment
包含注释文本的字符串。
注释
将 // 用于单行或嵌套的注释。用 // 插入的注释由换行字符分界。注释没有最大长度限制。
示例
SELECT * FROM authors ORDER BY au_id ASC // We don't have to specify ASC because that
//is the default.
5.3 /* */(多行注释)
表示用户提供的文本。可以将注释插入单独行中、嵌套在 KSQL 命令行的末端,或者KSQL语句中。目标数据库不对注释进行评估。
语法
/* text_of_comment*/
参数
text_of_comment
包含注释文本的字符串。
注释
将/* */用于单行的和嵌套的注释。由/* */插入的注释不受换行分界符的限制。
示例
SELECT * FROM authors ORDER BY au_id ASC /* We don't have to specify ASC because that
is the default.*/
6 通配符
6.1 [ ](通配符 — 需匹配的字符)
匹配指定范围内或者属于方括号所指定的集合中的任意单个字符。
6.2 [^](通配符字符 — 无需匹配的字符)
匹配不处于指定范围内或者不属于方括号内指定集合中的任意单个字符。
6.3 _(通配符 — 匹配一个字符)
匹配任意单个字符,并且可以被用作前缀或后缀。
6.4 %(通配符 — 匹配一个或多个字符)
匹配任意单个或多个字符,并且可以被用作前缀或后缀。
7 标识符号
KSQL规定,数据库名,数据库别名,数据表名,数据表别名,字段名,字段别名,视图名,视图别名,索引名,索引别名, 约束名都属于标识符范围。
7.1 命名规则:
7.1.1 一般标识符
以英文字母开头,后跟连续的一个或多个英文字母,下划线或数字。
示例
合法的命名:tTable, t__, t123, tTable__, tTable123, t123__, t__123等。
不合法的命名:_t, _123, 123table, $table, tTable 123等。
7.1.2 引号标识符
包含在双引号内的除双引号以外的连续或不连续字符序列。
示例
合法的命名:”__”, ”123”, ”table 123”等
不合法的命名:””””, “””, “”tTable””等。
7.1.3 临时表表名标识符
以#或##开头的后跟符号一般表示符命名规则的标识符号。
示例
合法的命名:#tTable, ##tTable, #t__, ##t__等。
和合法的命名:#__, #123, ##1_, ##_12等。
8 常量
8.1 时间常量
语法
格式 | 含义 |
{d 'yyyy-mm-dd'} | 日期 |
{t 'hh:mm:ss'} | 时间 |
{ts 'yyyy-mm-dd hh:mm:ss'} | 时间戳 |
注释
时间戳的日期和时间之间只允许出现一个空格分隔符号。
时间中不支持毫秒。
示例
时间戳:{ts‘2002-07-17 10:51:18’}
日期:{d‘2002-07-17’}
时间:{t‘10:51:18’}
8.2 字符串常量
语法
[ N | n ] ‘ [ ^’ ] ’
参数
N
指示该字符歘常量为UNICODE字符串。
n
指示该字符歘常量为UNICODE字符串。
注释
包含在’’中的除’以外的任何字符序列。
示例
合法的字符串常量:‘’, ‘ ‘, ‘ ‘, ‘ ^ ‘, ’hello’等。
合法的UNICODE字符串常量:n‘’, N‘ ‘, N‘ ‘, n‘ ^ ‘, N’hello’等。
不合法的字符串常量:’’’,’’’’’等。
不合法的字符串常量:N’’’,n’’’’’等。
9 函数
9.1 数值函数
9.1.1 ABS
返回给定数字表达式的绝对值。
语法
ABS ( numeric_expression )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式
返回类型
返回与 numeric_expression 相同的类型。
示例
SELECT ABS(-1.0), ABS(0.0), ABS(1.0)
9.1.2 CELLING
返回大于或等于所给数字表达式的最小整数。
语法
CEILING ( numeric_expression )
参数
numeric_expression
是精确数字或近似数字数据类型类别的表达式
返回类型
返回与 numeric_expression 相同的类型。
示例
SELECT CEILING(123.45), CEILING(-123.45), CEILING(0.0)
9.1.3 COS
一个数学函数,返回给定表达式中给定角度(以弧度为单位)的三角余弦值。
语法
COS ( float_expression )
参数
float_expression
是DECIMAL类型得expression
返回类型
DECIMAL
示例
SELECT CONVERT (VARCHAR,COS(14.78)) FROM sample
9.1.4 EXP
返回所给的 float 表达式的指数值。
语法
EXP ( float_expression )
参数
float_expression
是 DECIMAL类型的表达式。
返回类型
DECIMAL
示例
SELECT CONVERT (VARCHAR,COS(378.615345498)) FROM sample
9.1.5 FLOOR
返回小于或等于所给数字表达式的最大整数。
语法
FLOOR ( numeric_expression )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式。
返回类型
返回与 numeric_expression 相同的类型。
示例
SELECT FLOOR(123,45), FLOOR(-123.45), FLOOR(123.45) FROM sample
9.1.6 LOG
返回给定 float 表达式的自然对数。
语法
LOG ( float_expression )
参数
float_expression
是DECIMAL数据数据类型的表达式 。
返回类型
DECIMAL
示例
SELECT CONVERT(varchar,LOG(5.175643)) AS “The LOG of the variable is:” FROM sample
9.1.7 PI
返回PI的值。
语法
PI( )
参数
DECIMAL
返回类型
DECIMAL
示例
SELECT PI( ) AS “PI is” FROM sample
9.1.8 SIGN
返回给定表达式的正 (+1)、零 (0) 或负 (-1) 号。
语法
SIGN ( numeric_expression )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式。
返回类型
DECIMAL
示例
SELECT SIGN( -1),SIGN(10) ,SING(0) FROM sample
9.1.9 SIN
以近似数字 (float) 表达式返回给定角度(以弧度为单位)的三角正弦值。
语法
SIN ( float_expression )
参数
float_expression
是DECIMAL类型得表达式。
返回类型
DECIMAL
示例
SELECT CONVERT(varchar,SIN(
45.175643
)) AS
“
The SIN of the angle is:
“
FROM sample
9.1.10 SQRT
返回给定表达式的平方根。
语法
SQRT ( float_expression )
参数
float_expression
是 DECIMAL类型的表达式。
返回类型
DECIMAL
示例
SELECT SQRT( 1.0 ) FROM sample
9.1.11 TAN
返回输入表达式的正切值。
语法
TAN ( float_expression )
参数
float_expression
返回类型
float 或 real 类型的表达式,解释为弧度数。
示例
SELECT TAN(PI( ) /2) FROM sample
9.1.12 LOG10
返回给定 float 表达式的以 10 为底的对数。
语法
LOG10 ( float_expression )
参数
float_expression
是 DECIMAL类型的表达式。
返回类型
DECIMAL
示例
SELECT CONVERT(varchar,LOG10(145.175643)) AS “The LOG10 of the variable is:” FROM sample
9.1.13 ROUND
返回数字表达式并四舍五入为指定的长度或精度。
语法
ROUND ( numeric_expression , length )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式。
length
是 numeric_expression 将要四舍五入的精度。length 必须是INT(INTEGER). 当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。
返回类型
返回与 numeric_expression 相同的类型。
注释
ROUND 始终返回一个值。如果 length 是负数且大于小数点前的数字个数,ROUND 将返回 0。
示例 | 结果 |
ROUND(748.58, -4) | 0 |
示例
SELECT ROUND(123.9994, 3), ROUND(123.9995, 3) FROM sample
9.1.14 MOD
返回两个整型数值相除得余数。
语法
MOD( int_expression , int_expression )
参数
int_expression
整型数据类型类别得表达式。
返回类型
INT
示例
SELECT MOD(11,2) FROM sample
9.1.15 NULLIF
如果两个指定的表达式相等,则返回空。
语法
NULLIF ( expression , expression )
参数
expression
常量、列名、函数、子查询或算术运算符的任意组合。
返回类型
返回类型与第一个 expression 相同。
如果两个表达式不相等,NULLIF 返回第一个 expression 的值。如果相等,NULLIF 返回第一个 expression 类型的空值。
示例
SELECT NULLIF( ABS(-10) , 10 ) AS “The result of NULLIF is:” FROM sample
9.1.16 ISNULL
如果第一个表达式的值为空,则返回第二个表达式的值,否则,返回第一个表达式的值。
语法
ISNULL ( expression , expression )
参数
expression
常量、列名、函数、子查询或算术运算符的任意组合。
返回类型
返回类型与第一个 expression 相同。
如果第一个表达式的值为空,ISNULL 返回第二个 expression 的值。否则,ISNULL 返回第一个 expression 类型的值。
示例
SELECT ISNULL( FMoney , 0 ) AS FMoney FROM sample
9.1.17 ASCII
返回字符表达式最左端字符的 ASCII 代码值。
语法
ASCII ( character_expression )
参数
character_expression
是类型为 char 或 varchar的表达式。
返回类型
INT
示例
SELECT ASCII(SUBSTRING(‘hello’,1,2)) FROM sample
9.2 字符函数
9.2.1 CHAR
将 int ASCII 代码转换为字符的字符串函数。
语法
CHAR ( integer_expression )
参数
integer_expression
介于 0 和 255 之间的整数。如果整数表达式不在此范围内,将返回 NULL 值。
返回类型
CHAR(1)
示例
SELECT CHAR( 63 ) FROM sample
9.2.2 LCASE
将大写字符数据转换为小写字符数据后返回字符表达式。
语法
LCASE ( character_expression )
参数
character_expression
是字符或二进制数据表达式。
character_expression 可以是常量和列。它必须是可以隐式转换成CHAR和VARCHR的数据类型。否则使用CONVERT显式转换character_expression。
返回类型
VARCHR
示例
SELECT LCASE ( ‘IT IS NONE OF YOU BUSINESS’ ) FROM sample
9.2.3 LEFT
返回从字符串左边开始指定个数的字符。
语法
LEFT ( character_expression , integer_expression )
参数
character_expression
是字符或二进制数据表达式。
character_expression 可以是常量和列。它必须是可以隐式转换成CHAR和VARCHR的数据类型。否则使用CONVERT显式转换character_expression。
integer_expression
是正整数。如果 integer_expression 为负,则返回空字符串。
返回类型
VARCHAR
示例
SELECT LEFT ( ‘Take care, baby’ ,2) FROM sample
9.2.4 LENGTH
返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。
语法
LENGTH ( string_expression )
参数
string_expression
要计算的字符串表达式。
返回类型
INT
示例
SELECT LENGTH( ‘How are you’) FROM sample
9.2.5 LTRIM
删除起始空格后返回字符表达式。
语法
LTRIM ( character_expression )
参数
character_expression
是字符或二进制数据表达式。
character_expression 可以是常量和列。它必须是可以隐式转换成CHAR和VARCHR的数据类型。否则使用CONVERT显式转换character_expression。
返回类型
VARCHAR
示例
SELECT LTRIME ( ‘Nobody loves you more than I do’ ) FROM sample
9.2.6 RIGHT
返回字符串中从右边开始指定个数的 integer_expression 字符。
语法
RIGHT ( character_expression , integer_expression )
参数
character_expression
是字符或二进制数据表达式。
character_expression 可以是常量和列。它必须是可以隐式转换成CHAR和VARCHR的数据类型。否则使用CONVERT显式转换character_expression。
integer_expression
是正整数,开始返回字符串的起始位置。如果 integer_expression 为负,则根据目标数据库的环境返回相应的错误信息。
返回类型
VARCHAR
示例
SELECT RIGHT(‘You are an apple in my eyes’ , 2) FROM sample
9.2.7 RTRIM
截断所有尾随空格后返回一个字符串。
语法
RTRIM ( character_expression )
参数
character_expression
由字符数据组成的表达式。character_expression 可以是常量、也可以是字符或二进制数据的列。
返回类型
VARCHAR
示例
SELECT RTRIM ( ‘I always laugh off setback ‘) FROM sample
9.2.8 UCASE
返回将小写字符数据转换为大写的字符表达式。
语法
UPPER ( character_expression )
参数
character_expression
由字符数据组成的表达式。character_expression 可以是常量、也可以是字符或二进制数据的列。
返回类型
VARCHAR
示例
SELECT UCASE(‘Misfortune comes on wings and depart on foot‘) FROM sample
9.2.9 SUBSTRING
返回字符CHAR,VARCHAR,NCHAR,NVARCHAR,CLOB,BLOB或具有其类型的结果表达式的一部分。
语法
SUBSTRING ( expression , start , length )
参数
expression
是字符串、字符串大对象, 列或包含列的表达式。不使用包含聚合函数的表达式。
Start
是一个整数,指定子串的开始位置。
Length
是一个整数,指定子串的长度(要返回的字符数或字节数)。
返回类型
返回字符数据。
示例
SELECT SUBSTRING( ‘So said,so done’, 1 ,10) FROM sample;
9.2.10 CONCAT
返回连接两个字符型表达式的结果。
语法
CONCAT( expression1 , expression2 )
参数
expression1
是字符串、字符串大对象, 列或包含列的表达式。不要使用包含聚合函数的表达式。
expression2
是字符串、字符串大对象, 列或包含列的表达式。不要用包含聚合函数的表达式。
返回类型
字符数据。
示例
SELECT CONCAT( ‘ TO nod politely is one thing ,‘,’and to follow what you say is quite another’) FROM sample
9.2.11 REPLACE
返回在指定的字符串中用某一字符串替换特定字符串的结果。
语法
REPLACE( expression1 , expression2, expression3 )
参数
expression1
指定的字符串。
expression2
需要查找替换的字符串。
Expression3
替换为的字符串。
返回类型
字符数据。
示例
SELECT REPLACE('abcdefghicde','cde','xxx') FROM sample
9.2.12 CHARINDEX
返回指定的字符串中某一子字符串替换特定字符串的结果。
语法
CHARINDEX( expression1 , expression2 )
参数
expression1
指定的字符串。
expression2
需要查找替换的字符串。
Expression3
替换为的字符串。
返回类型
字符数据。
示例
SELECT REPLACE('abcdefghicde','cde','xxx') FROM sample
9.3 时间函数
CURTIME
语法
参数
返回类型
示例
9.3.1 CURDATE
返回现在日期。
语法
CURDATE( )
参数
返回类型
DATETIME
示例
SELECT CURDATE( ) FROM sample
9.3.2 CURTIME
返回现在时间。
语法
CURTIME( )
参数
返回类型
DATETIME
示例
SELECT CURTIME( ) FROM sample
9.3.3 DAYOFMONTH
返回日期和时间戳月中的第几号。
语法
DAYOFMONTH ( expression )
参数
expression
日期常量,时间戳常量,具有DATETIME类型的列它们的任意组合运算的结果。
返回类型
INT
示例
SELECT DAYOFMONTH( NOW( ) ) FROM sample
9.3.4 DAYOFWEEK
返回日期和时间戳的一周星期几。
语法
DAYOFWEEK( expression )
参数
expression
日期常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT DAYOFWEEK( NOW( ) ) FROM sample
9.3.5 DAYOFYEAR
返回日期和时间戳在一年中的天数位置。
语法
DAYOFYEAR( expression )
参数
expression
日期常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT DAYOFYEAR( NOW( ) ) FROM sample
9.3.6 HOUR
返回时间或时间戳中的小时部分。
语法
HOUR( expression )
参数
expression
时间常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT HOUR( NOW ( ) ) FROM sample
9.3.7 MINUTE
返回时间或时间戳中的分钟部分。
语法
MINUTE( expression )
参数
expression
时间常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT MINUTE( NOW( ) ) FROM sample
9.3.8 MONTH
返回日期和时间戳的月份。
语法
MONTH( expression )
参数
expression
日期常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT MONTH( NOW( ) ) FROM sample
9.3.9 NOW
返回现在时间(时间戳)。
语法
NOW( )
参数
返回类型
DATETIME
示例
SELECT NOW( ) FROM sample
9.3.10 QUARTER
返回日期和时间戳的季度号。
语法
QUARTER( expression )
参数
expression
日期常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT QUARTER( NOW( ) ) FROM sample
9.3.11 SECOND
返回时间和时间戳的秒部分。
语法
SECOND( expression )
参数
expression
时间常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT SECOND( NOW( ) ) FROM sample
9.3.12 WEEK
返回日期和时间戳在一年的第几周。
语法
WEEK( expression )
参数
expression
日期常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT WEEK( NOW( ) ) FROM sample
9.3.13 YEAR
返回日期和时间戳的年部分。
语法
YEAR( expression )
参数
expression
日期常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
INT
示例
SELECT YEAR( NOW( ) ) FROM sample
9.3.14 DAYNAME
返回时间和时间戳在一周中名字。
语法
DAYNAME( espression )
参数
espression
时间常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。
返回类型
VARCHAR
示例
SELECT DAYNAME( NOW( ) ) FROM sample
9.3.15 MONTHNAME
返回日期和时间戳的月份名字。
语法
本文2024-09-23 00:31:33发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140022.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf