KSQL 参考手册

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

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支持的数据类型为 CHARVARCHAR , NCHARNVARCHARBINARYVARBINARYBLOB, CLOB, NCLOB, INT, INTEGERDECIMALDATETIME 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

返回类型

floatreal 类型的表达式,解释为弧度数。

示例

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

    是类型为 charvarchar的表达式。

返回类型

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 可以是常量和列。它必须是可以隐式转换成CHARVARCHR的数据类型。否则使用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 可以是常量和列。它必须是可以隐式转换成CHARVARCHR的数据类型。否则使用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 可以是常量和列。它必须是可以隐式转换成CHARVARCHR的数据类型。否则使用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 可以是常量和列。它必须是可以隐式转换成CHARVARCHR的数据类型。否则使用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

返回时间和时间戳在一周中名字。

语法

DAYNAMEespression

参数

espression

    时间常量,时间戳常量,具有DATETIME类型的列及它们的任意组合运算的结果。

返回类型

VARCHAR

示例

SELECT DAYNAME( NOW( ) ) FROM sample


9.3.15  MONTHNAME

返回日期和时间戳的月份名字。

语法

MONTHNAMEexpression

上一篇:Algo下一篇:V4.0.012版本升级说明
确认删除?
客服QQ
  • 客服QQ点击这里给我发消息