zoukankan      html  css  js  c++  java
  • H2Database聚合函数

    聚合函数(Aggregate Functions

    AVG
      BOOL_AND
      BOOL_OR
      COUNT
      GROUP_CONCAT
     
     

    MAX
      MIN
      SUM
      SELECTIVITY
      STDDEV_POP
     
     

    STDDEV_SAMP
      VAR_POP
      VAR_SAMP

    数值函数(Numeric Functions

    ABS
      ACOS
      ASIN
      ATAN
      COS
      COT
      SIN
      TAN
      ATAN2
      BITAND
      BITOR
      BITXOR
     
     

    MOD
      CEILING
      DEGREES
      EXP
      FLOOR
      LOG
      LOG10
      RADIANS
      SQRT
      PI
      POWER
      RAND
     
     

    RANDOM_UUID
      ROUND
      ROUNDMAGIC
      SECURE_RAND
      SIGN
      ENCRYPT
      DECRYPT
      HASH
      TRUNCATE
      COMPRESS
      EXPAND
      ZERO

    字符串函数(String Functions

    ASCII
      BIT_LENGTH
      LENGTH
      OCTET_LENGTH
      CHAR
      CONCAT
      DIFFERENCE
      HEXTORAW
      RAWTOHEX
      INSTR
      INSERT Function
      LOWER
      UPPER
     
     

    LEFT
      RIGHT
      LOCATE
      POSITION
      LPAD
      RPAD
      LTRIM
      RTRIM
      TRIM
      REGEXP_REPLACE
      REPEAT
      REPLACE
      SOUNDEX
     
     

    SPACE
      STRINGDECODE
      STRINGENCODE
      STRINGTOUTF8
      SUBSTRING
      UTF8TOSTRING
      XMLATTR
      XMLNODE
      XMLCOMMENT
      XMLCDATA
      XMLSTARTDOC
      XMLTEXT

    日期和时间函数(Time and Date Functions

    CURRENT_DATE
      CURRENT_TIME
      CURRENT_TIMESTAMP
      DATEADD
      DATEDIFF
      DAYNAME
      DAY_OF_MONTH
     
     

    DAY_OF_WEEK
      DAY_OF_YEAR
      EXTRACT
      FORMATDATETIME
      HOUR
      MINUTE
      MONTH
     
     

    MONTHNAME
      PARSEDATETIME
      QUARTER
      SECOND
      WEEK
      YEAR

    系统函数(System Functions

    ARRAY_GET
      ARRAY_LENGTH
      AUTOCOMMIT
      CANCEL_SESSION
      CASEWHEN   Function
      CAST
      COALESCE
      CONVERT
      CURRVAL
      CSVREAD
      CSVWRITE
      DATABASE
     
     

    DATABASE_PATH
      FILE_READ
      GREATEST
      IDENTITY
      IFNULL
      LEAST
      LOCK_MODE
      LOCK_TIMEOUT
      LINK_SCHEMA
      MEMORY_FREE
      MEMORY_USED
      NEXTVAL
     
     

    NULLIF
      READONLY
      ROWNUM
      SCHEMA
      SCOPE_IDENTITY
      SESSION_ID
      SET
      TABLE
      TRANSACTION_ID
      USER


    AVGAVG ( [ DISTINCT ] { int | long | decimal | double } )

    平均值。如果没有查询到行,结果集为NULL。聚合方法只能在SELECT语句中使用,返回的值的数据类型与输入参数(字段)类型一致。

    例子如下:

    AVG(X)

    BOOL_ANDBOOL_AND(boolean)

    如果表达式为真返回TRUE,如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。

    例子如下:

    BOOL_AND(ID>10)

    BOOL_ORBOOL_OR(boolean)

    如果表达式为真返回TRUE,如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。

    例子如下:

    BOOL_OR(NAME LIKE 'W%')

    COUNTCOUNT( { * | { [ DISTINCT ] expression } } )

    统计所有的行数,或者非空值。方法返回一个长整数,如果没有查询到行,返回结果为0。聚合函数只能在SELECT语句中使用。

    例子如下:

    COUNT(*)

    GROUP_CONCAT

    GROUP_CONCAT ( [ DISTINCT ] string

    [ ORDER BY { expression [ ASC | DESC ] } [,...] ]
    [ SEPARATOR expression ] )

    以分割字符串进行连接。默认的分隔符是一个','(不带空格),此方法返回一个字符串,如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。

    例子如下:

    GROUP_CONCAT(NAME ORDER BY ID SEPARATOR ', ')

    MAXMAX(value)

    取最大值。 如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。 返回的值的数据类型与输入参数(字段)类型一致。

    例子如下:

    MAX(NAME)

    MINMIN(value)

    取最小值。如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。 返回的值的数据类型与输入参数(字段)类型一致。

    例子如下:

    MIN(NAME)

    SUMSUM( [ DISTINCT ] { int | long | decimal | double } )

    所有值求和。如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。 返回的值的数据类型与输入参数(字段)类型一致。

    例子如下:

    SUM(X)

    SELECTIVITYSELECTIVITY(value)

    估算性能优化选择(0-100)。这个值被定义为(100 * distinctCount / rowCount)。设置为了0的优化选择为0(未知) 。10000 以内的值都被保存在内存中。聚合函数只能在SELECT语句中使用。

    例子如下:

    SELECT SELECTIVITY(FIRSTNAME), SELECTIVITY(NAME) FROM TEST WHERE ROWNUM()<20000

    STDDEV_POPSTDDEV_POP( [ DISTINCT ] double )

    总体标准差。此方法返回一个双精度实数。如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。

    例子如下:

    STDDEV_POP(X)

    STDDEV_SAMPSTDDEV_SAMP( [ DISTINCT ] double )

    样本标准差。此方法返回一个双精度实数。如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。

    例子如下:

    STDDEV(X)

    VAR_POPVAR_POP( [ DISTINCT ] double )

    总体方差(总体标准方差)。 此方法返回一个双精度实数。如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。

    例子如下:

    VAR_POP(X)

    VAR_SAMPVAR_SAMP( [ DISTINCT ] double )

    样本方差(样本标准方差)。如果没有查询到行,结果集为NULL,聚合函数只能在SELECT语句中使用。

    例子如下:

    VAR_SAMP(X)

    ABSABS ( { int | long | decimal | double } )

    参见JAVA的 Math.abs方法。需要注意的是 Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE 和 Math.abs(Long.MIN_VALUE) == Long.MIN_VALUE。返回值的类型和输入参数的类型相同。

    例子如下:

    ABS(ID)

    ACOSACOS(double)

    参见JAVA的Math.acos方法。这个方法返回一个双精度实数。

    例子如下:

    ACOS(D)

    ASINASIN(double)

    参见JAVA的Math.asin方法。这个方法返回一个双精度实数。

    例子如下:

    ASIN(D)

    ATANATAN(double)

    参见JAVA的Math.atan方法。这个方法返回个双精度实数。

    例子如下:

    ATAN(D)

    COSCOS(double)

    参见JAVA的Math.cos方法。这个方法返回个双精度实数。

    例子如下:

    COS(ANGLE)

    COTCOT(double)

    参见JAVA的方法Math.cot。这个方法返回个双精度实数。

    例子如下:

    COT(ANGLE)

    SINSIN(double)

    参见JAVA方法Math.sin。这个方法返回个双精度实数。

    例子如下:

    SIN(ANGLE)

    TANTAN(double)

    参见JAVA方法Math.tan。这个方法返回个双精度实数。

    例子如下:

    TAN(ANGLE)

    ATAN2ATAN2(double, double)

    参见JAVA方法Math.atan2。这个方法返回个双精度实数。

    例子如下:

    ATAN2(X, Y)

    BITANDBITAND(long, long)

    位的与运算。这个方法返回一个长整数,参见JAVA操作 &。

    例子如下:

    BITAND(A, B)

    BITORBITOR(long, long)

    位的或运算。这个方法返回一个长整数,参见JAVA操作 |。

    例子如下:

    BITOR(A, B)

    BITXORBITXOR(long, long)

    位的异或运算。这个方法返回一个长整数,参见JAVA操作 ^。

    例子如下:

    BITXOR(A, B)

    MODMOD(long, long)

    取余数操作,这个方法返回一个长整数,参见JAVA操作 %。

    例子如下:

    MOD(A, B)

    CEILINGCEILING(double)

    参见JAVA方法 Math.ceil。 这个方法返回个双精度实数。

    例子如下:

    LOG(A)

    DEGREESDEGREES(double)

    参见JAVA方法Math.toDegrees。这个方法返回个双精度实数。

    例子如下:

    DEGREES(A)

    EXPEXP(double)

    参见JAVA方法 Math.exp。这个方法返回个双精度实数。

    例子如下:

    EXP(A)

    FLOORFLOOR(double)

    参见JAVA方法 Math.floor。这个方法返回个双精度实数。

    例子如下:

    FLOOR(A)

    LOGLOG(double)

    参见JAVA方法 Math.log。这个方法返回个双精度实数。

    例子如下:

    LOG(A)

    LOG10LOG10(double)

    参见JAVA方法 Math.log10 (在Java 5中)。这个方法返回个双精度实数。

    例子如下:

    LOG10(A)

    RADIANSRADIANS(double)

    参见JAVA方法 Math.toRadians。这个方法返回个双精度实数。

    例子如下:

    RADIANS(A)

    SQRTSQRT(double)

    参见JAVA方法 Math.sqrt。这个方法返回个双精度实数。

    例子如下:

    SQRT(A)

    PIPI()

    参见JAVA值 Math.PI。这个方法返回个双精度实数。

    例子如下:

    PI()

    POWERPOWER(double, double)

    参见JAVA方法 Math.pow。这个方法返回个双精度实数。

    例子如下:

    POWER(A, B)

    RANDRAND( [ int ] )

    调用无参的方法返回下一个未指定的随机数。调用带这个SESSION的种子参数的随机数生成器。这个方法返回一个双精度实数。

    例子如下:

    RAND()

    RANDOM_UUIDRANDOM_UUID()

    返回一个新的122位未指定随机数的UUID。

    例子如下:

    RANDOM_UUID()

    ROUNDROUND(double, digitsInt)

    四舍五入一个数值,方法返回一个双精度的实数。

    例子如下:

    ROUND(VALUE, 2)

    ROUNDMAGICROUNDMAGIC(double)

    更好的四舍五入方法,但是要慢,它在处理约0时有特殊的方法。仅小于等于+/-1000000000000 的数被支持。数值将被在内部转换为一个字符串,然后最后的四个字符被检查,'000x'变成'0000','999x'变成 '999999',四舍五入是自动完成的,方法返回一个双精度的实数。

    例子如下:

    ROUNDMAGIC(VALUE/3*3)

    SECURE_RANDSECURE_RAND(int)

    生产加密安全的随机数,方法返回字节串。

    例子如下:

    CALL SECURE_RAND(16)

    SIGNSIGN ( { int | long | decimal | double } )

    如果值小于0返回-1,如果值为0返回0,其他返回1。

    例子如下:

    SIGN(VALUE)

    ENCRYPTENCRYPT(algorithmString, keyBytes, dataBytes)

    使用密钥加密数据。支持算法 XTEA 和 AES。每块的大小为16字节,这个方法返回字节串。

    例子如下:

    CALL ENCRYPT('AES', '00', STRINGTOUTF8('Test'))

    DECRYPT

    DECRYPT(algorithmString, keyBytes, dataBytes)

    使用密码解密。支持算法 XTEA 和 AES。每块的大小为16字节,这个方法返回字节串。

    例子如下:

    CALL TRIM(CHAR(0) FROM UTF8TOSTRING(
        DECRYPT('AES', '00', '3fabb4de8f1ee2e97d7793bab2db1116')))

    HASHHASH(algorithmString, dataBytes, iterationInt)

    使用一个算法计算一个HASH值,通过一定次数的使用算法迭代计算来获得HASH值。目前仅有 SHA256被支持。这个方法返回字节串。

    例子如下:

    CALL HASH('SHA256', STRINGTOUTF8('Password'), 1000)

    TRUNCATETRUNCATE(double, digitsInt)

    截断数值(多余的位数直接截断为0)。这个方法返回一个双精度的实数。

    例子如下:

    TRUNCATE(VALUE, 2)

    COMPRESSCOMPRESS(dataBytes [, algorithmString])

    使用指定的压缩算法压缩数据。目前支持的算法有: LZF (更快但是压缩率更低,缺省的压缩算法), DEFLATE (更高的压缩率)。压缩并不总能减少尺寸,非常小的对象和竟凑对象可能会变得更大。这个方法返回字节串。

    例子如下:

    COMPRESS(STRINGTOUTF8('Test'))

    EXPANDEXPAND(bytes)

    解压被COMPRESS 方法压缩的数据。这个方法返回字节串。

    例子如下:

    UTF8TOSTRING(EXPAND(COMPRESS(STRINGTOUTF8('Test'))))

    ZEROZERO()

    返回值0,这个方法能被用,即使在数字文本被禁用的情况下。

    例子如下:

    ZERO()

    ASCIIASCII(string)

    返回字符串第一个字符的ASCII值。这个方法返回一个整数。

    例子如下:

    ASCII('Hi')

    BIT_LENGTHBIT_LENGTH(string)

    返回串的位长度。这个方法返回一个长整数。像BLOB, CLOB, BYTES 和 JAVA_OBJECT, 都可以使用这个方法。每个字符需要16个BIT位。

    例子如下:

    BIT_LENGTH(NAME)

    LENGTH{ LENGTH | CHAR_LENGTH | CHARACTER_LENGTH } ( string )

    返回串中的字符数量。这个方法返回一个长整数。像 BLOB, CLOB, BYTES 和 JAVA_OBJECT, 都可以使用这个方法。

    例子如下:

    LENGTH(NAME)

    OCTET_LENGTHOCTET_LENGTH(string)

    返回串中的字节数。这个方法返回一个长整数。像BLOB, CLOB, BYTES 和 JAVA_OBJECT, 都可以使用这个方法。每个字符需要2个字节。

    例子如下:

    OCTET_LENGTH(NAME)

    CHAR{ CHAR | CHR } ( int )

    转换ASCII值为字符。这个方法返回一个字符串。

    例子如下:

    CHAR(65)

    CONCATCONCAT(string, string [,...])

    合并字符串。这个方法返回一个字符串。

    例子如下:

    CONCAT(NAME, '!')

    DIFFERENCEDIFFERENCE(string, string)

    返回两个字符串的读音差别。这个方法返回一个整数。

    例子如下:

    DIFFERENCE(T1.NAME, T2.NAME)

    HEXTORAWHEXTORAW(string)

    转换16进制字符串为普通字符串,4个16进制字符转换一个字符。

    例子如下:

    HEXTORAW(DATA)

    RAWTOHEXRAWTOHEX(string)

    转换普通字符串为16进制字符串。一个字符转换为4个16进制字符。这个方法返回一个字符串。

    例子如下:

    RAWTOHEX(DATA)

    INSTRINSTR(string, searchString, [, startInt])

    查找子串在字符串中的位置。如果一个开始位置被指定,这个位置之前的字符将被忽略,如果指定的开始位置为负数,从右数到开始位置的字符将被忽略。如果子串在字符串中未找到,返回0。

    例子如下:

    INSTR(EMAIL,'@')

    INSERT FunctionINSERT(originalString, startInt, lengthInt, addString)

    插入一个附加的字符串到指定串的指定位置。lengthInt指定在原串中从startInt指定的位置删除的字符数。这个方法返回一个字符串。

    例子如下:

    INSERT(NAME, 1, 1, ' ')

    LOWER{ LOWER | LCASE } ( string )

    转换一个字符串为小写。

    例子如下:

    LOWER(NAME)

    UPPER{ UPPER | UCASE } ( string )

    转换一个字符串为大写。

    例子如下:

    UPPER(NAME) 

    LEFTLEFT(string, int)

    返回左边的子字符串。

    例子如下:

    LEFT(NAME, 3)

    RIGHTRIGHT(string, int)

    返回右边的子字符串。

    例子如下:

    RIGHT(NAME, 3)

    LOCATELOCATE(searchString, string [, startInt])

    返回子串在字符串中的位置。如果一个开始位置被指定,这个位置之前的字符将被忽略,如果指定的开始位置为负数,从右数到开始位置的字符将被忽略。如果子串在字符串中未找到,返回0。

    例子如下:

    LOCATE('.', NAME)

    POSITIONPOSITION(searchString, string)

    返回子串在字符串中的位置。参考 LOCATE。

    例子如下:

    POSITION('.', NAME)

    LPADLPAD(string, int[, paddingString])

    左填充指定长度的字符串。如果指定的长度比字符串的实际长度要短,将把字符串从尾部进行截断。如果填充字符串未指定,空格将被填充。

    例子如下:

    LPAD(AMOUNT, 10, '*')

    RPADRPAD(string, int[, paddingString])

    右填充指定长度的字符串。如果指定的长度比字符串的实际长度短,将把字符串截断。如果填充字符串未指定,空格将被填充。

    例子如下:

    RPAD(TEXT, 10, '-')

    LTRIMLTRIM(string)

    从字符串中移走所有的前导空格。

    例子如下:

    LTRIM(NAME)

    RTRIMRTRIM(string)

    从字符串中移走所有的尾部空格。

    例子如下:

    RTRIM(NAME)

    TRIMTRIM ( [ { LEADING | TRAILING | BOTH } [ string ] FROM ] string )

    移走字符串前导和尾部两端的全部空格。其他字符也可以通过指定被移走。

    例子如下:

    TRIM(BOTH '_' FROM NAME)

    REGEXP_REPLACEREGEXP_REPLACE(inputString, regexString, replacementString)

    使用正则表达式进行字符串替换。关于更多细节,请参看JAVA方法 String.replaceAll()。

    例子如下:

    REGEXP_REPLACE('Hello    World', ' +', ' ')

    REPEATREPEAT(string, int)

    返回字符串中循环的次数。

    例子如下:

    REPEAT(NAME || ' ', 10)

    REPLACEREPLACE(string, searchString [, replacementString])

    使用另一个字符串替换文本中所有的搜索到的串。如果没有替换字符串被指定,搜索到的字符串将从原串中删除。

    例子如下:

    REPLACE(NAME, ' ')

    SOUNDEXSOUNDEX(string)

    返回代表字符串读音的四个字符代码。参见 http://www.archives.gov/genealogy/census/soundex.html 。这个方法返回一个字符串。

    例子如下:

    SOUNDEX(NAME)

    SPACESPACE(int

    返回组成字符串的空格数。

    例子如下:

    SPACE(80)

    STRINGDECODESTRINGDECODE(string)

    使用JAVA文本格式符解码字符串。特定的字符包括 , , , f, , ", \, <octal>, u<unicode>。这个方法返回一个字符串。

    例子如下:

    CALL STRINGENCODE(STRINGDECODE('Lines 1 Line 2'))

    STRINGENCODESTRINGENCODE(string)

    使用JAVA文本格式符编码字符串。特定的字符包括 , , , f, , ", \, <octal>, u<unicode>。这个方法返回一个字符串。

    例子如下:

    CALL STRINGENCODE(STRINGDECODE('Lines 1 Line 2'))

    STRINGTOUTF8STRINGTOUTF8(string)

    转换字符串为UTF8编码格式的字节数组。这个方法返回字节串。

    例子如下:

    CALL UTF8TOSTRING(STRINGTOUTF8('This is a test'))

    SUBSTRING{ SUBSTRING | SUBSTR } ( string, startInt [, lengthInt ] )

    提取指定起始位置的子串。长度是可选的,也支持:SUBSTRING(string FROM start [FOR length]).

    例子如下:

    SUBSTR(NAME, 1)

    UTF8TOSTRINGUTF8TOSTRING(bytes)

    将UTF8格式的字节数组解码为字符串。

    例子如下:

    CALL UTF8TOSTRING(STRINGTOUTF8('This is a test'))

    XMLATTRXMLATTR(nameString, valueString)

    创建XML属性元素,形式为 name="value"。value被编码为XML文本。这个方法返回字符串。

    例子如下:

    CALL XMLNODE('a', XMLATTR('href', 'http://h2database.com'))

    XMLNODEXMLNODE(elementString [, attributesString [, contentString]])

    创建一个XML节点元素,这个方法返回一个字符串。

    例子如下:

    CALL XMLNODE('a', XMLATTR('href', 'http://h2database.com'), 'H2')

    XMLCOMMENTXMLCOMMENT(commentString)

    创建一个XML注释。两个破折号(--)被转换为 - -。这个方法返回字符串。

    例子如下:

    CALL XMLCOMMENT('Test')

    XMLCDATAXMLCDATA(valueString)

    创建一个XML的CDATA 元素。如果值内容包含 ']]>',一个XML文本元素将被替代创建。这个方法返回一个字符串。

    例子如下:

    CALL XMLCDATA('data')

    XMLSTARTDOCXMLSTARTDOC()

    字符串 '<?xml version="1.0"?>' 将被返回。

    例子如下:

    CALL XMLSTARTDOC()

    XMLTEXTXMLTEXT(valueString)

    创建一个XML文本元素,这个方法返回字符串。

    例子如下:

    CALL XMLTEXT('test')

    ARRAY_GETARRAY_GET(arrayExpression, indexExpression)

    返回一个数组元素,这个方法返回一个字符串。

    例子如下:

    CALL ARRAY_GET(('Hello', 'World'), 2)

    ARRAY_LENGTHARRAY_GET(arrayExpression)

    返回一个数组的长度。

    例子如下:

    CALL ARRAY_LENGTH(('Hello', 'World'))

    AUTOCOMMITAUTOCOMMIT()

    如果在这个SESSION上自动提交被打开,将返回TRUE。

    例子如下:

    AUTOCOMMIT()

    CANCEL_SESSIONCANCEL_SESSION(sessionInt)

    取消另外的SESSION正在执行的语句。这个方法仅工作在多线程内核被启动的情况下 (多线程查看 SET MULTI_THREADED)。如果语句被取消返回TRUE,如果SESSION已经关闭或是没有语句正在执行,返回FALSE。

    执行这个语句需要管理员权限。

    例子如下:

    CANCEL_SESSION(3)

    CASEWHEN FunctionCASEWHEN(boolean, aValue, bValue)

    如果boolean表达式为真返回aValue,否则返回bValue。返回与输入参数类型相同的数据类型。

    例子如下:

    CASEWHEN(ID=1, 'A', 'B')

    CASTCAST(value AS dataType)

    转换一个值为另外一种数据类型。当转换文本为数字时,默认的JAVA转换规则被使用(前缀为 0x 或 # 表示16进制数,前缀为0表示8进制数)。

    例子如下:

    CAST(NAME AS INT)

    COALESCECOALESCE(aValue, bValue [,...])

    返回第一个非空值。

    例子如下:

    COALESCE(A, B, C)

    CONVERTCONVERT(value, dataType)

    转换一个值为另外一种数据类型。

    例子如下:

    CONVERT(NAME, INT)

    CURRVALCURRVAL( [ schemaName, ] sequenceString )

    返回序列的当前(最后)值,不依赖SESSION。如果序列刚创建,方法返回(start - interval)。如果SCHEMA名没有指定,当前SCHEMA被指定。如果SCHEMA名没有被指定,序列名将被转换为大写(为了兼容性)。这个方法返回长整数。

    例子如下:

    CURRVAL('TEST_SEQ')

    CSVREADCSVREAD(fileNameString [, columnsString [, csvOptions ] ] )

    返回读CSV(逗号分隔字段)文件的结果集。对于每个参数,NULL表示缺省值被提供。

    如果字段名列表被指定(使用字段分隔符分割的字段列表),将使用这些字段名,如果没有被指定(或者它们被设置为NULL),文件的第一行被解释为字段列名,在这种情况下,列名不包含特殊字符(仅包含字母、 '_'、数字;类似于JAVA标识符的规则),并且是区分大小写的。另外,列名都是区分大小写的,这表示你需要使用引用标识符(见下面的说明)。

    缺省的字符集为系统的缺省值,缺省的字段分隔符是逗号。没有加引号的值匹配空串时被解析为NULL,左右的列类型都是 VARCHAR。

    这个方法能被像表一样被使用: SELECT * FROM CSVREAD(...)。也可以使用URL来替代文件使用,如 jar:file:///c:/temp/example.zip!/org/example/nested.zip.

    执行这个语句需要管理员权限。

    例子如下:

    CALL CSVREAD('test.csv');
    -- 如一个包含字段 ID, NAME 的文件
    -- 文件的字符集为 UTF-8 ,管道符 (|) 作为字段分隔符
    CALL CSVREAD('test2.csv', 'ID|NAME', 'UTF-8', '|');

    --读一个分号分隔的文件
    SELECT * FROM CSVREAD('data/test.csv', NULL, NULL, ';');
    SELECT "Last Name" FROM CSVREAD('address.csv');

    CSVWRITECSVWRITE ( fileNameString, queryString [, csvOptions [, lineSepString] ] )

    写一个CSV(逗号分隔)文件爱你。如果文件存在就覆盖。对每个参数,使用NULL表示使用缺省值。缺省字符集为系统缺省值,缺省字段分隔符为逗号。

    值将使用缺省的字符串表示法转换为文本。如果需要其他转换方式需要改变选择语句。当参数为NULL时将写入空串(缺省情况下,当NULL出现时什么都不写)。缺省的行分隔符为系统的缺省值(参见系统属性'line.separator' )。

    返回写的行数。执行这个语句需要管理员权限。

    例子如下:

    CALL CSVWRITE('test.csv', 'SELECT * FROM TEST');
    -- 写文件使用 UTF-8 编码,管道符(|)为字段分隔符

    CALL CSVWRITE('test2.csv', 'SELECT * FROM TEST', 'UTF-8', '|');

    DATABASEDATABASE()

    返回数据库名

    例子如下:

    CALL DATABASE();

    DATABASE_PATHDATABASE_PATH()

    返回数据库文件路径和数据库名,如果不是基于文件的数据库,返回NULL。

    例子如下:

    CALL DATABASE_PATH();

    FILE_READFILE_READ(fileNameString [,encodingString])

    返回文件内容,如果仅一个参数被提供,数据被作为 BLOB返回。如果两个参数被提供,数据被作为 CLOB 文本返回。 第二个参数作为字符集使用,NULL表示使用系统缺省的字符集。文件名和URL被支持。执行这个语句需要管理员权限。

    例子如下:

    SELECT LENGTH(FILE_READ('~/.h2.server.properties')) LEN;
    SELECT FILE_READ('http://localhost:8182/stylesheet.css', NULL) CSS;

    GREATESTGREATEST(aValue, bValue [,...])

    返回最大的非空值,如果所有的值为NULL,将返回NULL。

    例子如下:

    CALL GREATEST(1, 2, 3);

    IDENTITYIDENTITY()

    返回当前SESSION最后写入的标识符。当一个新的序列号产生时,这个值都将改变,即使是在触发器或是JAVA方法中,详细参见 SCOPE_IDENTITY()。这个方法返回一个长整数。

    例子如下:

    CALL IDENTITY();

    IFNULLIFNULL(aValue, bValue)

    如果值为非空返回aValue,否则返回bValue。

    例子如下:

    CALL IFNULL(NULL, '');

    LEASTLEAST(aValue, bValue [,...])

    返回非空的最小值,如果所有的值都是NULL,将返回NULL。

    例子如下:

    CALL LEAST(1, 2, 3);

    LOCK_MODELOCK_MODE()

    返回当前所模式。参见SET LOCK_MODE。这个方法返回一个整数。

    例子如下:

    CALL LOCK_MODE();

    LOCK_TIMEOUTLOCK_TIMEOUT()

    返回当前SESSION的锁超时时间(毫秒数)。

    例子如下:

    LOCK_TIMEOUT()

    LINK_SCHEMALINK_SCHEMA(targetSchemaString, driverString, urlString,
    userString, passwordString, sourceSchemaString)

    在一个SCHEMA创建所有表的表链接。如果同名的表已经存在,将先删除它们。目标SCHEMA在不存在的情况下将被自动创建。驱动如果已经加载了驱动名可以为空。链接表列表作为结果集被返回。执行这个语句需要管理员权限。

    例子如下:

    CALL LINK_SCHEMA('TEST2', '', 'jdbc:h2:test2', 'sa', 'sa', 'PUBLIC');

    MEMORY_FREEMEMORY_FREE()

    返回空闲内存,单位为 KB (1024 字节为一 KB)。这个方法返回一个整数。在返回这个值前,垃圾收集器将被执行。这行这个语句需要管理员权限。

    例子如下:

    MEMORY_FREE()

    MEMORY_USEDMEMORY_USED()

    返回已用的内存,单位为 KB (1024 字节为一 KB)。这个方法返回一个整数。在返回这个值前,垃圾收集器将被执行。这行这个语句需要管理员权限。

    例子如下:

    MEMORY_USED()

    NEXTVALNEXTVAL ( [ schemaName, ] sequenceString )

    返回序列的下一个值。已经被使用过的值永远也不会再用,即使事务被回滚。如果SCHEMA没有被设置,当前SCHEMA被使用,序列名将被转换为大写(为了兼容性)。这个方法返回一个长整数。

    例子如下:

    NEXTVAL('TEST_SEQ')

    NULLIFNULLIF(aValue, bValue)

    如果aValue等于bValue返回NULL,否则返回aValue。

    例子如下:

    NULLIF(A, B)

    READONLYREADONLY()

    如果数据库是只读的,返回TRUE。

    例子如下:

    READONLY()

    ROWNUMROWNUM()

    返回当前行数,这个方法返回一个整数。这个方法支持SELECT语句、DELETE语句和UPDATE语句。第一行为行号1,行号在结果集分组和排序前被计算。要获得排序和分组之后的行号,需要使用子查询。

    例子如下:

    SELECT ROWNUM(), * FROM TEST;
    SELECT ROWNUM(), * FROM (SELECT * FROM TEST ORDER BY NAME);

    SCHEMASCHEMA()

    返回这个SESSION的缺省SCHEMA名。

    例子如下:

    CALL SCHEMA()

    SCOPE_IDENTITYSCOPE_IDENTITY()

    返回当前SESSION当前作用范围的最后插入的标识符值,在触发器和JAVA方法中的改变将被忽略。参见 IDENTITY()。这个方法返回一个长整数。

    例子如下:

    CALL SCOPE_IDENTITY();

    SESSION_IDSESSION_ID()

    返回当前数据库连接的唯一SESSION标识号。这个标识号在连接打开期间一直存在。这个方法返回一个整数。数据库引擎可以重复使用已经关闭的连接的SESSION标识号。

    例子如下:

    CALL SESSION_ID()

    SETSET(@variableName, value)

    更新指定变量的值。新值将被返回。当使用在查询中时,值将被按读的顺序进行更新。

    例子如下:

    SELECT X, SET(@I, IFNULL(@I, 0)+X) RUNNING_TOTAL FROM SYSTEM_RANGE(1, 10)

    TABLE{ TABLE | TABLE_DISTINCT } ( { name dataType = expression } [,...] )

    返回结果集。 TABLE_DISTINCT 删除重复的行。

    例子如下:

    SELECT * FROM TABLE(ID INT=(1, 2), NAME VARCHAR=('Hello', 'World'))

    TRANSACTION_IDTRANSACTION_ID()

    返回当前SESSION的当前事务ID。如果没有未提交的改变,或是数据不是持久化的,这个方法返回NULL,否则下面形式的值被返回: logFileId-position-sessionId。这个方法返回一个字符串。这个值在数据库重启后也是唯一的值(值不会被重新使用)。

    例子如下:

    CALL TRANSACTION_ID()

    USER{ USER | CURRENT_USER } ()

    返回当前SESSION的当前用户的用户名。

    例子如下:

    CURRENT_USER()

    CURRENT_DATE{ CURRENT_DATE [ () ] | CURDATE() | SYSDATE | TODAY }

    返回当前日期。

    例子如下:

    CURRENT_DATE()

    CURRENT_TIME{ CURRENT_TIME [ () ] | CURTIME() }

    返回当前时间。

    例子如下:

    CURRENT_TIME()

    CURRENT_TIMESTAMP{ CURRENT_TIMESTAMP [ ( [ int ] ) ] | NOW( [ int ] ) }

    返回当前时间戳,纳秒精度参数是可选的。

    例子如下:

    CURRENT_TIMESTAMP()

    DATEADDDATEADD(unitString, addInt, timestamp)

    增加一个单元到时间戳中,使用字符串表示这个单元,使用负数来裁剪单元。同样的单元在 EXTRACT 方法中被支持。这个方法返回一个时间戳。

    例子如下:

    DATEADD('MONTH', 1, DATE '2001-01-31')

    DATEDIFFDATEDIFF(unitString, aTimestamp, bTimestamp)

    返回两个时间戳的差值。这个方法返回一个长整数。字符串表示这个单元。同样的单元在 EXTRACT 方法中被支持。

    例子如下:

    DATEDIFF('YEAR', T1.CREATED, T2.CREATED)

    DAYNAMEDAYNAME(date)

    返回日期的名称(英语)。

    例子如下:

    DAYNAME(CREATED)

    DAY_OF_MONTHDAY_OF_MONTH(date)

    返回月份的第几天 (1-31)。

    例子如下:

    DAY_OF_MONTH(CREATED)

    DAY_OF_WEEKDAY_OF_WEEK(date)

    返回星期的第几天 (1 表示星期一).

    例子如下:

    DAY_OF_WEEK(CREATED)

    DAY_OF_YEARDAY_OF_YEAR(date)

    返回一年中的第几天 (1-366).

    例子如下:

    DAY_OF_YEAR(CREATED)

    EXTRACTEXTRACT ( { YEAR | YY | MONTH | MM | DAY | DD | DAY_OF_YEAR
    | DOY | HOUR | HH | MINUTE | MI | SECOND | SS | MILLISECOND | MS }
    FROM timestamp )

    返回时间戳里指定的值。这个方法返回一个整数。

    例子如下:

    EXTRACT(SECOND FROM CURRENT_TIMESTAMP)

    FORMATDATETIMEFORMATDATETIME ( timestamp, formatString

    [ , localeString [ , timeZoneString ] ] )

    格式化日期、时间或时间戳为字符串。最重要的格式符为: y 年, M 月, d 日, H 小时, m 分钟, s 秒。详细的格式说明参见 java.text.SimpleDateFormat。这个方法返回一个字符串。

    例子如下:

    CALL FORMATDATETIME(TIMESTAMP '2001-02-03 04:05:06',
        'EEE, d MMM yyyy HH:mm:ss z', 'en', 'GMT')

    HOURHOUR(timestamp)

    返回时间戳中的小时数(0-23)。

    例子如下:

    HOUR(CREATED)

    MINUTEMINUTE(timestamp)

    返回时间戳中的分钟数(0-59)。

    例子如下:

    MINUTE(CREATED)

    MONTHMONTH(timestamp)

    返回时间戳中的月份数(1-12)。

    例子如下:

    MONTH(CREATED)

    MONTHNAMEMONTHNAME(date)

    返回指定月的月名(英文)。

    例子如下:

    MONTHNAME(CREATED)

    PARSEDATETIMEPARSEDATETIME(string, formatString

    [, localeString [, timeZoneString]])

    解析字符串返回时间戳。最重要的格式符有: y 年, M 月, d 日, H 小时, m 分钟, s 秒。关于格式更多信息,请参考java.text.SimpleDateFormat.

    例子如下:

    CALL PARSEDATETIME('Sat, 3 Feb 2001 03:05:06 GMT',
        'EEE, d MMM yyyy HH:mm:ss z', 'en', 'GMT')

    QUARTERQUARTER(timestamp)

    返回时间戳的季度数 (1-4) 。

    例子如下:

    QUARTER(CREATED)

    SECONDSECOND(timestamp)

    返回时间戳的秒数(0-59)。

    例子如下:

    SECOND(CREATED)

    WEEKWEEK(timestamp)

    返回时间戳的星期数(1-53) 。这个方法使用当前系统所在地的时区。

    例子如下:

    WEEK(CREATED)

    YEARYEAR(timestamp)

    返回时间戳的年份

    例子如下:

    YEAR(CREATED)

  • 相关阅读:
    java中讲讲PrintStream的用法,举例?
    Spark Scala当中reduceByKey的用法
    springboot与ActiveMQ整合
    solr(六): 集群
    zookeeper集群
    solr(五): centos中, 整合 tomcat&solr
    springboot redis(单机/集群)
    redis 五种数据类型
    redis 集群搭建: redis-cluster
    redis 持久化
  • 原文地址:https://www.cnblogs.com/river2005/p/4785252.html
Copyright © 2011-2022 走看看